首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python 2.7 unicode在本地和服务器之间显示不同的结果

python 2.7 unicode在本地和服务器之间显示不同的结果
EN

Stack Overflow用户
提问于 2016-03-18 17:13:39
回答 2查看 43关注 0票数 0

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

1)第一个问题

local - python2.7.10 -韩国计算机

代码语言:javascript
复制
>>> a = "久保充明"
>>> a
'\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5'

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

代码语言:javascript
复制
>>> a = "久保充明"
>>> a
'\xe4\xb9\x85\xe4\xbf\x9d\xe5\x85\x85\xe6\x98\x8e'

两者都显示出不同的结果。

有没有人说出结果不同的原因?也许操作系统语言不同??

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

代码语言:javascript
复制
'\xce\xf9\xdc\xc1\xf5\xf6\xd9\xa5' (<- what is this??)

而不是这个?

代码语言:javascript
复制
"久保充明"
EN

回答 2

Stack Overflow用户

发布于 2016-03-18 17:34:06

您正在使用Python2,并且在本地计算机上使用本地编码编写字符;我不知道这是什么;它既不是UTF-8,也不是GB2312、18030、Big5或Shift-JIS:

代码语言:javascript
复制
>>> 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是默认的源代码编码。

代码语言:javascript
复制
# -*- coding: utf-8 -*-

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

票数 1
EN

Stack Overflow用户

发布于 2016-03-18 17:22:01

  1. 两个操作系统的字符集设置不同,所以它们的输出是不同的。
  2. 结果是汉字的编码,如果在打印之前设置编码,则会得到所需的编码。

写入文件test.py

代码语言:javascript
复制
# -*- coding: utf-8 -*-

a = "久保充明"
print(a)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36080366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档