我在本地计算机和服务器中输入了"久保充明"
1)第一个问题
本地 - python2.7.10 - 韩文电脑
>>> a = "久保充明"
>>> a
'\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5'
server - python2.7.6 - (日文服务器?)
>>> a = "久保充明"
>>> a
'\xe4\xb9\x85\xe4\xbf\x9d\xe5\x85\x85\xe6\x98\x8e'
两者都显示出不同的结果......
有没有人告诉为什么结果不同? 也许OS语言不同??
2)第二个问题
为什么Python显示这个?
'\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5' (<- what is this??)
而不是这个?
"久保充明"
答案 0 :(得分:1)
您正在使用Python 2并且您在本地计算机上以本地编码书写字符;它是,我不知道;它不是UTF-8,也不是GB2312,18030,Big5或Shift-JIS:
>>> print('\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5'.decode('GB2312'))
矽芰貊佶
>>> print('\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5'.decode('GB18030'))
矽芰貊佶
>>> print('\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5'.decode('Big5'))
朏僋蘜晱
>>> print('\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5'.decode('Shift-jis'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position 1-2: illegal multibyte sequence
在服务器上,您使用的是UTF-8。
您应该始终使用UTF-8 / Unicode;实际上Python 3指定默认情况下UTF-8是源代码编码。此外用
启动源文件# -*- coding: utf-8 -*-
并使用u''
个unicode字符串。如果可能,请考虑切换到Python 3;它也可能解决了问题2的问题。
答案 1 :(得分:0)
写入文件test.py
# -*- coding: utf-8 -*-
a = "久保充明"
print(a)