问题一直困扰着我,Python 3.4.1一直在回归
UnicodeEncodeError:'charmap'编解码器无法对位置1075中的字符'\ u25be'进行编码:字符映射到未定义
Unicode表明U + 25BE是▾黑色小点三角形。
我一直在尝试阅读包含这个小家伙的文件,无论我做什么它似乎都不起作用。以下是相关代码:
whole = ""
f = open(src, 'r', encoding='utf-8')
for l in f:
whole += l
print(whole)
打印将抛出上述错误。我尝试使用以下代码将其编码为ASCII:
l.encode('ascii', 'ignore')
仍然没有。我无法解码文件错误吗?如果有帮助,这也是一个网页,并使用urllib.request
模块产生完全相同的结果。
我正在使用Windows 7,如果这有所不同。
答案 0 :(得分:3)
我假设您正在打印到Windows控制台。 Windows控制台不默认为(并且支持不佳)UTF-8,但您可以更改代码页并重试:
C:\>chcp 65001
Active code page: 65001
C:\>py
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:57:17) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('\u25be')
▾
>>> import unicodedata as ud
>>> ud.name('\u25be')
'BLACK DOWN-POINTING SMALL TRIANGLE'
使用Consolas
控制台字体在美国英语Windows上显示正确的字符,但不是Lucida Console
或Raster Fonts
字体。确保您使用的字体支持该字符。