烦人的python编码
xiaobin268
2009-05-06
今天用python做读取文件的小例子,代码如下:
filename = raw_input('请输入文件名称-->') f = open(filename) s = f.readline() print('s------------> ',s) f.close() for line in s: print('line----> ',line.encode('gbk')) 但是我不管如何转化,打印出来的汉字都是乱码。有解决办法的朋友的么?说说。 |
|
xukong
2009-05-06
# -*- coding:gbk -*- filename = './test.txt' f = open(filename) s = f.readlines() #print 's------------> ',s f.close() for line in s: print 'line----> ',line 如果你在WIN上,被读取的文件中也是GBK编码,可以试试上面的代码 |
|
xiaobin268
2009-05-07
xukong 写道 # -*- coding:gbk -*- filename = './test.txt' f = open(filename) s = f.readlines() #print 's------------> ',s f.close() for line in s: print 'line----> ',line 如果你在WIN上,被读取的文件中也是GBK编码,可以试试上面的代码 |
|
xiaobin268
2009-05-07
解决了。
print('line----> %s ' % line) 我真,这样写就行,但是 print('line----> ',line.encode('gbk')) 写就是不行,真服了python的编码。 |
|
xukong
2009-05-07
xiaobin268 写道 xukong 写道 # -*- coding:gbk -*- filename = './test.txt' f = open(filename) s = f.readlines() #print 's------------> ',s f.close() for line in s: print 'line----> ',line 如果你在WIN上,被读取的文件中也是GBK编码,可以试试上面的代码 啊,我发的这段代码是实际运行显示正常后才发上来的,环境是win sp3 + py 2.6.2,我用 print() 的调用输出的也是字节形式 与 print 的输出为什么不同我GOOGLE下.. |
|
xukong
2009-05-07
xiaobin268 写道 解决了。
print('line----> %s ' % line) 我真,这样写就行,但是 print('line----> ',line.encode('gbk')) 写就是不行,真服了python的编码。 上面的 line.encode('gbk')我觉得没有必要解码到GBK,如果你的被读文件本来就是GBK编码的话 至于你说的服了PY的编码我觉得没必要,虽然输出不同,但是你的调用方式也不同,可能用的环境不恰当吧 哦,其实很明显啊,你的上一句是指明了将 line 作为 string %s 格式输出 下一句,没有指明显示的格式,应该就是以原始形式输出了 我记得似乎看到过 print() 的函数形式是在 python 3中才出现的?如果是的话,新东西就要仔细看下文档了 |
|
xiaobin268
2009-05-07
xukong 写道 xiaobin268 写道 解决了。
print('line----> %s ' % line) 我真,这样写就行,但是 print('line----> ',line.encode('gbk')) 写就是不行,真服了python的编码。 上面的 line.encode('gbk')我觉得没有必要解码到GBK,如果你的被读文件本来就是GBK编码的话 至于你说的服了PY的编码我觉得没必要,虽然输出不同,但是你的调用方式也不同,可能用的环境不恰当吧 哦,其实很明显啊,你的上一句是指明了将 line 作为 string %s 格式输出 下一句,没有指明显示的格式,应该就是以原始形式输出了 我记得似乎看到过 print() 的函数形式是在 python 3中才出现的?如果是的话,新东西就要仔细看下文档了 就是我不用line.encode('gbk')输出照常是乱码。 |
|
sdem
2009-05-07
如果LZ贴出所谓的“乱码”,80%以上的人都能告诉你错在哪里了。哈哈。
|
|
yoursmile
2009-05-07
文件本身设置成gbk,在代码中加入# -*- coding:gbk -*-
|
|
Hooopo
2009-05-07
呼呼~~~~python也这样呀??
|