2006年09月20日 星期三 11:55
最近用SQLObject做项目,使用了UnicodeCol做存储中文用。后来发现使用了几种编码最终都无法存入信息。于是上网参考了一下,看了《SQLObject 的中文编码问题及解决方案》。不过很可惜,在我的ActivePython 2.4.3中并没有这个问题。于是最后郁闷的看TraceBack。发现一个奇怪的事实。代码如下,在col.py中(483-499行)。 class StringValidator(validators.Validator): def to_python(self, value, state): if value is None: return None if isinstance(value, unicode): return value.encode("ascii") return value def from_python(self, value, state): if value is None: return None if isinstance(value, str): return value if isinstance(value, unicode): return value.encode("ascii") return value SQLObject在内部做了字符串的数据有效性验证,却在验证之后的返回时加了ASCII编码。所以无论输入的是Unicode、UTF-8、GBK编码,只要不是ASCII编码的一律出错。 真不知作者是什么目的。大家讨论一下吧。有这个东西的存在肯定要在使用非ASCII编码时出错的。我试着删除了489和498行的.encode("ascii")语句,所有的都正常了。 我用的版本是SQLObject-0.7rc1-py2.4.egg。 -- 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就.. 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。 我愿为那一刻的温暖去拼,可是谁愿意接受? 欢迎访问偶的博客: http://blog.csdn.net/gashero
2006年09月20日 星期三 12:01
On 9/20/06, gashero <harry.python在gmail.com> wrote: > 最近用SQLObject做项目,使用了UnicodeCol做存储中文用。后来发现使用了几种编码最终都无法存入信息。于是上网参考了一下,看了《SQLObject > 的中文编码问题及解决方案》。不过很可惜,在我的ActivePython > 2.4.3中并没有这个问题。于是最后郁闷的看TraceBack。发现一个奇怪的事实。代码如下,在col.py中(483-499行)。 > > class StringValidator(validators.Validator): > > def to_python(self, value, state): > if value is None: > return None > if isinstance(value, unicode): > return value.encode("ascii") > return value > > def from_python(self, value, state): > if value is None: > return None > if isinstance(value, str): > return value > if isinstance(value, unicode): > return value.encode("ascii") > return value > > SQLObject在内部做了字符串的数据有效性验证,却在验证之后的返回时加了ASCII编码。所以无论输入的是Unicode、UTF-8、GBK编码,只要不是ASCII编码的一律出错。 > > 真不知作者是什么目的。大家讨论一下吧。有这个东西的存在肯定要在使用非ASCII编码时出错的。我试着删除了489和498行的.encode("ascii")语句,所有的都正常了。 > > 我用的版本是SQLObject-0.7rc1-py2.4.egg。 > 不用SQLObject,也许是一个bug吧。 -- I like python! My Blog: http://www.donews.net/limodou UliPad Site: http://wiki.woodpecker.org.cn/moin/UliPad UliPad Maillist: http://groups.google.com/group/ulipad
2006年09月20日 星期三 14:31
:ÛOôêX¦¡Ú.)¨v ¨¥r°®^:ÛOôê¬ êè ªëÊਥr°®^IÎn7µIâr^ R@³ç-Ëb½ãò¶'ÛÓ§§$riË7ãß\«,JÚâZ'Z¶ïjXjÚ+±V¥Ö¢·^~Ú)ÊØhÇ¥~ö¥¹ë-j×¢~ö¥¹è¬6Þën®shèȧ²Ö§qëÚç®'(uêÞ¶ê罩nyéܡױȢën®{Úçy÷ë¢jr¶'±é_½©nzËZµè½©nz+ ¢w«zÛ«Ú'z'â²)쵩Üzö¥¹ë-®·º¹ïj[ø¬{-jw½©nzéâr^ën®{ÚçÊy«*Þ¶ê罩ny$9¸ÞrÐ'(uåÁ( 8óÞ=ñéܡױȢIÎn7·NësZrÛ $9¸ÞrÖîm§ÿðÃ(¢ ^r¿±æ«r
2006年09月20日 星期三 15:20
老外写的程序,一般来说都有这个毛病。 On 9/20/06, Bruce Wang <number5在gmail.com> wrote: > > > On 9/20/06, limodou <limodou在gmail.com> wrote: > > On 9/20/06, gashero <harry.python在gmail.com> wrote: > > > > 最近用SQLObject做项目,使用了UnicodeCol做存储中文用。后来发现使用了几种编码最终都无法存入信息。于是上网参考了一下,看了《SQLObject > > > 的中文编码问题及解决方案》。不过很可惜,在我的ActivePython > > > > 2.4.3中并没有这个问题。于是最后郁闷的看TraceBack。发现一个奇怪的事实。代码如下,在col.py中(483-499行)。 > > > > > > class StringValidator(validators.Validator): > > > > > > def to_python(self, value, state): > > > if value is None: > > > return None > > > if isinstance(value, unicode): > > > return value.encode("ascii") > > > return value > > > > > > def from_python(self, value, state): > > > if value is None: > > > return None > > > if isinstance(value, str): > > > return value > > > if isinstance(value, unicode): > > > return value.encode ("ascii") > > > return value > > > > > > > SQLObject在内部做了字符串的数据有效性验证,却在验证之后的返回时加了ASCII编码。所以无论输入的是Unicode、UTF-8、GBK编码,只要不是ASCII编码的一律出错。 > > > > > > > 真不知作者是什么目的。大家讨论一下吧。有这个东西的存在肯定要在使用非ASCII编码时出错的。我试着删除了489和498行的.encode > ("ascii")语句,所有的都正常了。 > > > > > > 我用的版本是SQLObject-0.7rc1-py2.4.egg。 > > > > > 不用SQLObject,也许是一个bug吧。 > > > > > > http://www.google.com/search?q=return+value.encode%28%22ascii%22%29+sqlobject+StringValidator > 看来是个很严重的bug > > -- > simple is good > http://brucewang.net > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > -- ※※※※※※※※※※※※※※※※※※※※※※※※ My blog: http://blog.donews.com/ygao Forum http://groups.google.com/group/python_study ※※※※※※※※※※※※※※※※※※※※※※※※
Zeuux © 2025
京ICP备05028076号