【发布时间】:2013-02-24 21:26:30
【问题描述】:
在我的代码中,我不断收到此错误...
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position 390: character maps to <undefined>
我尝试添加一个除了 UnicodeError 和 UnicodeEncodeError 之外的内容,但没有任何效果,问题是它是用户输入的,所以我无法控制他们输入的内容,所以我需要所有编码错误来显示显示错误而不是崩溃的打印程序...
try:
argslistcheck = argslist[0]
if argslistcheck[0:7] != "http://":
argslist[0] = "http://" + argslist[0]
with urllib.request.urlopen(argslist[0]) as url:
source = url.read()
source = str(source, "utf8")
except urllib.error.URLError:
print("Couln't connect")
source = ""
except UnicodeEncodeError:
print("There was an error encrypting...")
source = ""
追溯:
Traceback (most recent call last):
..... things leading up to error
File "C:\path", line 99, in grab print(source)
File "C:\Python33\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 '\u2013' in position 390: character maps to <undefined>
【问题讨论】:
-
更有可能是程序的输出导致了错误; Unicode 数据会自动编码以匹配您的终端输出编码。您是在打印任何东西还是在写入文件?请包括该代码和完整的回溯。
-
是的,它要么打印源代码,要么将其保存到 txt 文件中……它只在某些网站上执行,例如如果我在我的网站上执行,则不会,但如果我这样做用test.com 然后它会。我只是不希望程序崩溃。
-
仔细查看traceback(最好与我们分享)。它告诉你什么操作失败了。
标签: python python-3.3