我有一个在IDLE中运行的脚本,但在cmd中运行相同的脚本时却没有。然后我收到了这个错误:
File "C:\Python27\lib\encodings\cp850.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2013' in position 17: character maps
to <undefined>
当我尝试打印包含以下部分“ - ”的字符串时,会发生错误。当脚本在IDLE中运行时,一切都很完美。我在Windows 7上使用Python 2.7,我想使用Windows Scheduler来安排脚本,因为我理解它然后在cmd中执行脚本。两个问题:
答案 0 :(得分:1)
Python(以及大多数其他语言)中的I / O基于字节。当您将一个字节字符串(str中的2.x,3.x中的字节)写入文件时,字节只是按原样写入。当您将Unicode字符串(2.x中的unicode,3.x中的str)写入文件时,需要将数据编码为字节序列。要查看进一步说明,请参阅Dive into Python 3 chapter on strings。 使用unicode字符串尝试此操作:
例如:
>>> print(u'\u2013')
–
,而:
>>> print("\u2013")
\u2013