UnicodeEncodeError: 'ascii' 编解码器无法编码字符 u'\u2013'

Posted

技术标签:

【中文标题】UnicodeEncodeError: \'ascii\' 编解码器无法编码字符 u\'\\u2013\'【英文标题】:UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013'UnicodeEncodeError: 'ascii' 编解码器无法编码字符 u'\u2013' 【发布时间】:2014-10-08 01:40:35 【问题描述】:

我正在遍历 words 的列表(我没有生成)

print(u'\n'.join(':'.format(w, f) for f,w in words))

我得到错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 0: ordinal not in range(128)

没有问题的单词按预期打印。如何修复此打印语句?

【问题讨论】:

【参考方案1】:

使用 .encode() 方法:

print(u'\n'.join(':'.format(w.encode('utf-8'), f).decode('utf-8') for f,w in words))

【讨论】:

我现在收到错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128) word是一种什么样的数据结构?是字典还是列表? 元组列表,[(<str:w>,<int:f>),...]

以上是关于UnicodeEncodeError: 'ascii' 编解码器无法编码字符 u'\u2013'的主要内容,如果未能解决你的问题,请参考以下文章

UnicodeEncodeError:“ascii”编解码器无法编码字符

UnicodeEncodeError:“latin-1”编解码器无法编码字符

“UnicodeEncodeError:‘ascii’编解码器无法编码字符”

Python请求:UnicodeEncodeError:'charmap'编解码器无法编码字符

python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't

UnicodeEncodeError: 'ascii' 编解码器无法编码字符 u'\u2026'