Python Unicode不支持字符U + 25BE

时间:2014-07-31 23:14:47

标签: python-3.x unicode

问题一直困扰着我,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,如果这有所不同。

1 个答案:

答案 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 ConsoleRaster Fonts字体。确保您使用的字体支持该字符。