我有关于阅读和打印utf8文本文件的python问题.
我有一个没有BOM的utf8编码的test.txt.该文件中包含两个字符:
??
Run Code Online (Sandbox Code Playgroud)
第一个字符"大"是中文,第二个"声"是日文.现在,当我使用Ulipad(一个python编辑器)运行以下代码来读取txt文件,并打印这两个字符.
import codecs
infile = "C:\\test.txt"
f = codecs.open(infile, "r", "utf-8")
s = f.read()
print(s)
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误,
"UnicodeEncodeError: 'cp950' codec can't encode character '\u58f0' in position 1:
illegal multibyte sequence"
Run Code Online (Sandbox Code Playgroud)
我发现它是由第二个字符"声"引起的.
但是当我使用相同的代码在python默认的GUI IDLE中进行测试时,它可以打印两个没有错误的字符.那么,我该如何解决这个问题呢.
我的运行环境是python 3.1,windows xp繁体中文.