为什么即使使用编码我也无法在python中显示中文字符?

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 ......但它仍然无效.

cda*_*rke 6

它是用于显示角色的终端系统.在Windows 7上使用IDLE,它工作正常:

>>> val = u'\u76d8'
>>> print val
?
Run Code Online (Sandbox Code Playgroud)

但如果我使用,cmd.exe那么我得到你的错误.

使用支持unicode编码的终端显示方法.


She*_*tJS 0

代码页 936是唯一具有字符 0x76D8(编码为 0xC5CC)的代码页。需要使用gbk或者cp936