求助, Python内Unicode的问题
时间:2011-12-23
来源:互联网
我的脚本如下
Python code
然后分别将字符串a和b输出到文件。将文件用二进制工具打开,结果两个文件的二进制相同。怎么回事,难道字符串前面的u不起作用?
Python code
# coding=gb2312 a = "论坛"; b = u"论坛";
然后分别将字符串a和b输出到文件。将文件用二进制工具打开,结果两个文件的二进制相同。怎么回事,难道字符串前面的u不起作用?
作者: zhiyajun11 发布时间: 2011-12-23
1.根本没看到你的输出的代码。
2.用什么工具打开的?不会是臭名昭彰的UltraEdit吧?
2.用什么工具打开的?不会是臭名昭彰的UltraEdit吧?
作者: iambic 发布时间: 2011-12-23
我用的是winhex。
输出代码如下:
Python code
输出代码如下:
Python code
file1 = open("C:\\text1.txt"); file2 = open("C:\\text2.txt"); file1.write(a); file2.write(b); file1.close(); file2.close();
引用 1 楼 iambic 的回复:
1.根本没看到你的输出的代码。
2.用什么工具打开的?不会是臭名昭彰的UltraEdit吧?
1.根本没看到你的输出的代码。
2.用什么工具打开的?不会是臭名昭彰的UltraEdit吧?
作者: zhiyajun11 发布时间: 2011-12-23
Python code
file2.write(b.encode('utf-16le')); # 或者 file2.write(b.encode('utf-16be'));
作者: iambic 发布时间: 2011-12-23
弱弱的问一下,你能执行成功吗?
text1.txt
text2.txt
刚刚我在xp下试一下,不能这样做
Python code
是这样的,xp系统默认是gbk编码.
而你的py文件头声明# -*- coding: gbk -*-,说明字符格式为gbk编码.没有问题,那f1.write(s1)写进去是没有问题的,可是当你把'gbk'编码的字符转换为unicode编码时,u'中国'.就会有问题,所以f2.write(s2)会报错.
你的脚本不会报错,可能是楼主的系统默认文件编码格式,或者是你的py版本和我的不一样.造成自动转化为写入文件的编码格式,所以看到的二进制是相同的.
不知道是否能说明白....
text1.txt
text2.txt
刚刚我在xp下试一下,不能这样做
Python code
# -*- coding: gbk -*- s1 = '中国' s2 = u'中国' f1 = open('a.txt', 'w') f2 = open('b.txt', 'w') f1.write(s1) f2.write(s2) # 报错
是这样的,xp系统默认是gbk编码.
而你的py文件头声明# -*- coding: gbk -*-,说明字符格式为gbk编码.没有问题,那f1.write(s1)写进去是没有问题的,可是当你把'gbk'编码的字符转换为unicode编码时,u'中国'.就会有问题,所以f2.write(s2)会报错.
你的脚本不会报错,可能是楼主的系统默认文件编码格式,或者是你的py版本和我的不一样.造成自动转化为写入文件的编码格式,所以看到的二进制是相同的.
不知道是否能说明白....
作者: userguanguan 发布时间: 2011-12-23
我是没看明白。不过我一般只花半分钟时间看问题,半分钟还不知道在说什么的都当作表达有问题。
作者: iambic 发布时间: 2011-12-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28