两行程序,在pythonShell里面可以运行,cmd下运行却报编码错误?
英文xp系统下python2.6.4,我有一个python程序叫做1.py,就2行:
s=u'\x92'
print s
在Python shell下面执行,打印一个乱码:
>>>
?
(这里无法拷贝出来)
但是在cmd下面却会抛出异常。
D:\>1.py
Traceback (most recent call last):
File "D:\1.py", line 2, in <module>
print s
File "C:\Python26\lib\encodings\cp437.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\x92' in position 0: character maps to <undefined>
我的问题是,为什么python shell不抛异常,在cmd下面却要抛异常? 难道这两种执行方式结果还不一样么?
[解决办法]
没在Windows下用过Python, 但是不是应该这样执行: python 1.py
我在Ubuntu下, 命令行执行脚本, 与在python解释器里执行的结果是一样的
[解决办法]
交互模式下的u"..."里用非ascii字符有时是比较诡异,到现在也没弄明白...
[解决办法]
在文件的第一行加上(其中name是你用的编码的名字),注意"coding"和"="之间没有空格:
# coding= name
例如:
# coding= utf-8a = u"你好"print a