我有一个文件input.txt,它只包含一行:“obra銮n”。我是如何得到a separate problem的汉字,我不想在这里解决,这里我只想在Windows上使用Python 3在命令行上打印该文件的内容(我在Linux上没有这个问题) )。
我一直在谷歌搜索这个问题一个小时,并且在没有弄清楚解决方案的情况下迷失了我的思绪。这是我有多远:
# -*- coding: utf-8 -*-
f = open("input.txt", encoding='utf8')
s = f.read()
print(type(s))
#print(s) #error
b = s.encode('utf-8')
print(type(b))
print(b)
#print(b.decode("utf-8")) #error
#print(b.decode('unicode_escape')) #error
此代码的输出为:
<class 'str'>
<class 'bytes'>
b'obra\xe9\x91\xben\n'
前两个评论行的错误相同:
UnicodeEncodeError: 'charmap' codec can't encode character '\u947e' in position 4: character maps to <undefined>
最后一条评论行的错误是:
UnicodeEncodeError: 'charmap' codec can't encode character in position 5-6: character maps to <undefined>
我现在已经开始思考该怎么做了。有关如何使用Python 3在Windows命令行上打印此文件内容的任何想法?
感谢。
答案 0 :(得分:2)
Windows命令行通常没有支持亚洲字符的字体,除非您的系统区域设置是亚洲语言环境。您可以在“控制面板”,“区域和语言”,“管理”选项卡(Windows 7)中更改系统区域设置。
否则,您可以尝试win-unicode-console
,但仍需要找到支持亚洲字符的固定宽度控制台字体。