UnicodeEncodeError:“charmap”编解码器无法在位置 28 编码字符“\u2080”:字符映射到 <undefined>

Posted

技术标签:

【中文标题】UnicodeEncodeError:“charmap”编解码器无法在位置 28 编码字符“\\u2080”:字符映射到 <undefined>【英文标题】:UnicodeEncodeError: 'charmap' codec can't encode character '\u2080' in position 28: character maps to <undefined>UnicodeEncodeError:“charmap”编解码器无法在位置 28 编码字符“\u2080”:字符映射到 <undefined> 【发布时间】:2018-07-30 06:39:28 【问题描述】:

Anaconda\lib\encodings\cp1252.py",第 19 行,在编码中 返回 codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError:“charmap”编解码器无法在位置 28 编码字符“\u2080”:字符映射到

你能帮帮我吗?

【问题讨论】:

你能提供一些上下文吗?您似乎正在尝试打印当前 Windows 代码页不支持的 Unicode 字符。使用支持 UTF-8 的 IDE,你会有更好的运气。 from IPython.display import Image import pydot graph = pydot.Dot(graph_type='digraph', rankdir="LR") s0 = pydot.Node("S₀") s1 = pydot.Node( "S₁") graph.add_edge(pydot.Edge(s0, s0, label='a₀, p=0.5, r=5')) graph.add_edge(pydot.Edge(s0, s1, label='a₀, p= 0.5, r=5')) graph.add_edge(pydot.Edge(s0, s1, label='a₁, p=1, r=10')) graph.add_edge(pydot.Edge(s1, s1, label=' a₂, p=1, r=-1')) 图像(graph.create_png()) Image(graph.create_png()) Anaconda\lib\site-packages\pydot.py, line 1662, in new_method format=f, prog=prog, encoding=encoding) 文件 ...\ site-packages\pydot.py”,第 1836 行,在创建 self.write(tmp_name, encoding=encoding) 文件“C:\Users\j\Anaconda\lib\site-packages\pydot.py”,第 1754 行,在写 f.write(s) 文件 ...\encodings\cp1252.py",第 19 行,编码返回 codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't在位置 28 编码字符 '\u2080':字符映射到 【参考方案1】:

是的,切换到 Python 3.6+。以下示例来自 Windows 控制台:

Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print u'\u2080'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\dev\Python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2080' in position 0: character maps to <undefined>

Python 3.3.5 (v3.3.5:62cf4e77f785, Mar  9 2014, 10:35:05) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('\u2080')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\dev\Python33x64\lib\encodings\cp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2080' in position 0: character maps to <undefined>

Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('\u2080')
₀

【讨论】:

感谢 Mark Tolonen 我的 Python 版本是 3.6!我不明白如何解决它。 @SaNa 所以你评论说你的版本是3.6,你不明白如何解决它,但你继续将它标记为接受的答案?有没有解决您的问题?

以上是关于UnicodeEncodeError:“charmap”编解码器无法在位置 28 编码字符“\u2080”:字符映射到 <undefined>的主要内容,如果未能解决你的问题,请参考以下文章

Charm Bracelet

poj 3624 Charm Bracelet

POJ-3624-Charm Bracelet

Charm Bracelet(01背包问题)

dp--01背包--Charm Bracelet

POJ3624 Charm Bracelet 01背包