免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2764 | 回复: 5
打印 上一主题 下一主题

python2.5下unicode的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-10 17:10 |只看该作者 |倒序浏览
书上说,字符串前面加个u就是unicode字符串。
我在cmd命令行模式下运行python,然后手动测试,没什么问题。

然后打开自带的那个IDLE,就有问题了。
如图,加了u的string,编码内容还是gbk编码....
这是什么原因呢?

而且我想把a转化长unicode编码,不管是unicode() 还是decode()都会报错。
只有把b变量,unicode()或者decode()才能获得对应的unicode编码。

麻烦大家解释下,谢谢了。

论坛徽章:
0
2 [报告]
发表于 2009-11-10 17:36 |只看该作者
刚试了下,建立一个文件,指定# -*- coding: gbk -*- 或者指定成utf-8,然后在文件中,那样建立变量a,则就ok了。
但是,在idle环境下,如此定义string就是不得正常。
我疑点在,u"string"就是把string unicode编码,和当前源文件的编码格式为什么要联系啊?非要指定下么?
源文件不指定编码,默认就是ascii码,而那个编码 a = u'你' 貌似也不是ascii编码,而且还莫名其妙的成了两个字符的unicode格式,他好像是直接把gbk的每个字节,当成每个字符直接编码,而且再度decode或者encode都会出错。
而且cmd下就ok,在idle中定义变量,貌似永远也不会正常。

[ 本帖最后由 fengyizi 于 2009-11-10 17:37 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-11-10 21:44 |只看该作者
其实都是控制台的问题。
http://blog.csdn.net/byrne8378/archive/2009/10/11/4654516.aspx
看这个

论坛徽章:
0
4 [报告]
发表于 2009-11-10 21:49 |只看该作者
中文尽量不要用u'  

直接指定源码编码,然后互相转编码就可以了。

论坛徽章:
0
5 [报告]
发表于 2009-11-13 11:07 |只看该作者
谢谢 lixuda  兄弟的回复,懂了。

论坛徽章:
0
6 [报告]
发表于 2009-11-14 19:18 |只看该作者
u'只是标识其是unicode,并没有保存unicode。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP