Python2.7Unicode显示了local和s之间的不同结果

2024-06-16 11:47:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在本地计算机和服务器上都输入了"久保充明"

1)第一个问题
本地-python2.7.10-韩语计算机

>>> a = "久保充明"
>>> a
'\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5'

服务器-python2.7.6-(日语服务器?)

>>> a = "久保充明"
>>> a
'\xe4\xb9\x85\xe4\xbf\x9d\xe5\x85\x85\xe6\x98\x8e'

两者都显示出不同的结果

有人告诉我为什么结果不同吗?? 也许操作系统语言不同

2)第二个问题 为什么Python会显示这个?

'\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5' (<- what is this??)

而不是这个

"久保充明"

Tags: 服务器计算机x85xe4xa5xdcxf6xf5
2条回答
  1. 两个操作系统的字符集设置不相同,因此它们的输出不同
  2. 结果就是汉字的编码,如果你在打印前设置编码,你就会得到你想要的

写入文件test.py

# -*- coding: utf-8 -*-

a = "久保充明"
print(a)

您使用的是python2,您正在本地计算机上以本地编码编写字符;我不知道它是什么;它不是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;实际上,python3指定默认情况下UTF-8是源代码编码。此外,还可以用

# -*- coding: utf-8 -*-

并使用u''unicode字符串。如果可能,考虑切换到python3;它也可能解决问题2的问题

相关问题 更多 >