gyn

Win32下的Perl,无用的select,停滞的Tk,结束吧....

python中unicode解决之道

和前一篇的起因一样,也是在使用 wxPython 的时候。因为不是每个人都熟悉英文(事实上,我总认为不熟悉或者说是生疏与英文的人,大多憎恨英文),不可避免的,需要显示一些中文。但是运行的结果显示大体如“ Syntax Error: Non ASCII character in ‘\xc4’…. ”的错误提示。按照 Dive into Python 的解释,这是因为 python 默认使用 ASCII 编解码,而中文显然不是标准的 ASCII
   按照文中的解决办法,是要在程序的第一或二行键入形如“
# -*- coding: gbk -*- ”或者将其中的 gbk 改为 cp936 ,这有什么不同。不过也许因为一些大牛习惯的缘故,使用 cp936 更酷一点。 Google 中的一种简单的写法是“ #coding=cp936 ”(需要注意的是和 bash 的语法相类似的,“ = ”两旁不能有空格),不过这样没有前一种来得顺眼,可按个人爱好任意选择。
   这样看来,问题似乎解决了。不过事事难预料,由于程序需要对
sqlite 进行读写,在将这些中文写入数据库的时候也出现了编解码错误的提示。看来 pysqlite 似乎只能处理 unicode 的数据,用惯了 perl DBI ,一时还无法接受这一而再烦人的错误。
   解决的办法是将中文用
unicode 实例化,然后在传给 pysqlite ,具体如: u’ 你好 这样。但是对于变量不能这样简化做,甚至于 u’%s’ % niha (其中 nihao 被赋值了‘你好’)的形式也不行。这里我们需要用 unicode 的完整形式, unicode(nihao, ‘cp936’)

posted on 2007-10-24 20:26 gyn_tadao 阅读(662) 评论(0)  编辑 收藏 引用 所属分类: Python

只有注册用户登录后才能发表评论。
<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

常用链接

留言簿(15)

随笔分类(126)

随笔档案(108)

相册

搜索

最新评论

阅读排行榜

评论排行榜