【发布时间】:2019-07-11 19:13:53
【问题描述】:
我需要将 Python 的编码从 Windows-1252 更改为 UTF-8。我正在使用 Python 3.7.1、Atom 和终端的 Atom 脚本包。
我已经阅读了PEP 540 -- Add a new UTF-8 Mode(对此的解决方案?我不知道如何实现或是否有用)我找不到合适的解决方案。
目前它无法处理 '\u2705' 或其他。检查我发现的 Python 文件目录时 ...Python\Python37\lib\encodings\cp1252.py
# When I run
import locale
import sys
print(sys.getdefaultencoding())
print(locale.getpreferredencoding())
# I get
utf-8
cp1252
[Finished in 0.385s]
# Error for print('\u2705')
Traceback (most recent call last):
File "C:\Users\en4ijjp\Desktop\junk.py", line 7, in <module>
print('\u2705').decode('utf-8')
File "C:\Users\en4ijjp\AppData\Local\Programs\Python\Python37\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2705' in
position 0: character maps to <undefined>
[Finished in 0.379s]
我希望我的终端能够处理字符并在使用 print() 时显示它们。
【问题讨论】:
-
这是编码错误,不是解码错误。当您尝试
print()某事时,可能会发生这种情况——所以这不是 bs4 的错,但您的终端无法打印有问题的字符。可以肯定的是,我们需要回溯。 -
在我的终端上打印
IPC-Store ✅所以我认为错误不在 BeautifulSoup 方面 -
我们仍然需要回溯来帮助您。在给定的代码 sn-p 中,我看不出发生 UnicodeEncodeError 的原因。
-
该错误最终是由第 236 行的
print(scrape_dict)引起的(不是显示的代码的一部分),正如我所怀疑的那样。我认为这个问题与beautifulsoup无关;只执行print('\u2705')的脚本可能足以重现异常。 -
如果你写一个 Python 脚本只有这一行
print('\u2705'),会发生什么?
标签: python encoding utf-8 atom-editor