我从文件中读取了一些字符串,当我尝试在Windows控制台中打印这些utf-8字符串时,出现错误。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128)
我尝试使用"chcp 65001"将控制台编码设置为utf-8,但是我收到了以下错误信息。
LookupError: unknown encoding: cp65001
我从文件中读取了一些字符串,当我尝试在Windows控制台中打印这些utf-8字符串时,出现错误。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128)
LookupError: unknown encoding: cp65001
LookupError: unknown encoding: cp65001
。它似乎与字符串内容完全无关。好像Python缺少对cp65001
的理解,但仍然尝试那种方式,这永远不会起作用,除非你解决它或使用Python 3.3(如果我猜得对的话)。 - n611x007set PYTHONIOENCODING=utf-8
。另请参见https://dev59.com/aXNA5IYBdhLWcg3wpvpg。 - Jiriprint命令会尝试将Unicode字符串转换为控制台支持的编码格式。请尝试:
>>> import sys
>>> sys.stdout.encoding
'cp852'
它向您展示控制台支持的编码(告诉Python支持什么)。如果字符无法转换为该编码,则无法正确显示。
chcp 65001
。顺便说一下,相关的环境变量设置是SET PYTHONIOENCODING=utf-8
(您也可以尝试mbcs
),但两者都无法正常工作,因为cp65001有缺陷,winapi也有缺陷(我不确定'mbcs'应该做什么,但它没有帮助)。 - n611x007