python乱码问题

甄码农 发布于 2012/03/02 18:40
阅读 1K+
收藏 0

一个奇怪的乱码问题,我的python版本是2.7,源文件保存的编码是utf-8

代码如下:

# -*- coding: utf-8 -*-
a = '雨'
print a
a += '润'
print a
a+= '食'
print a
a += '品'
print a

上面的代码运行后输出如下

>>> 
雨
闆ㄦ鼎
雨润食
闆ㄦ鼎椋熷搧

可以看出a只有一个字符时输出正常非乱码,而有两个字符时会变成乱码,有三个字符时又不乱码了,四个字符时又出现了乱码问题,为什么呀?

加载中
0
Yisen
Yisen

控制台的编码问题吧

0
everyx
everyx
亲测木有这个问题 Python 2.7.2
David_Lee_
David_Lee_
我也是这个版本(2.7.2),也没有问题
0
匿名人士
匿名人士

看样子你是在Windows下用的IDLE

刚测试过,Win7下,

CMD编码GBK,4行全乱码

IDLE下,2/4行乱码

实际上就是显示终端不支持UTF-8

C:\> a.py > 1.txt

C:\> notepad 1.txt

将输出导入文本文件查看完全没问题

0
甄码农
甄码农

非常感谢楼上各位的帮助。肯定是编码问题,但是为啥第1,3行输出的是正确的,而第2,4行输出是错误的。另外又经过测试如果将源文件的编码设置为cp936就完全没有了乱码的问题

# -*- coding: cp936 -*-
a = '雨'
print a
a += '润'
print a
a += '食'
print a
a += '品'
print a

另外我确实是在windows下使用IDLE做的测试

返回顶部
顶部