use*_*233 4 python unicode encoding
我只是想导入一个中文txt文件并打印出内容.这是我从网上复制的txt文件的内容,简体中文:http://stock.hexun.com/2013-06-01/154742801.html
起初,我尝试了这个:
userinput = raw_input('Enter the name of a file')
f=open(userinput,'r')
print f.read()
f.close()
Run Code Online (Sandbox Code Playgroud)
它可以打开文件并打印,但显示的内容是乱码.然后我用编码尝试了以下一个:
#coding=UTF-8
userinput = raw_input('Enter the name of a file')
import codecs
f= codecs.open(userinput,"r","UTF-8")
str1=f.read()
print str1
f.close()
Run Code Online (Sandbox Code Playgroud)
但是,它显示了一条错误消息.UnicodeEncodeError:'cp950编解码器无法在位置50编码字符u'\ u76d8':非法的mutibyte序列.
为什么会发生错误?怎么解决?我尝试过像Big5,cp950这样的其他unicode ......但它仍然无效.
它是用于显示角色的终端系统.在Windows 7上使用IDLE,它工作正常:
>>> val = u'\u76d8'
>>> print val
?
Run Code Online (Sandbox Code Playgroud)
但如果我使用,cmd.exe
那么我得到你的错误.
使用支持unicode编码的终端显示方法.