python中的字符串编码问题——3.各操作系统下的不同编码方式

各操作系统下的不同编码方式
 
先看一下
linux,python2.7
>>> B = b'xc3x84xc3xa8'
>>> B.decode('utf-8')
u'xc4xe8'
>>> type(B)
<type 'str'>
>>>  
 
windows,python2.7,python shell
>>> B = b'xc3x84xc3xa8'
>>> B.decode('utf-8')
u'xc4xe8'
>>> print B.decode('utf-8')
Äè
>>>
 
windows,python2.7,python cmd控制台
>>> B = b'xc3x84xc3xa8'
>>> B.decode('utf-8')
u'xc4xe8'
>>> print B.decode('utf-8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'gbk' codec can't encode character u'xc4' in position 0: il
legal multibyte sequence
>>>
 
三种环境下不同输出的原因:
 
windows控制台默认采用GBK编码,liunx默认采用UTF-8编码
------------------------------------------------------
查看linux默认编码:
[root@localhost ~]# env |grep LANG
LANG=zh_CN.UTF-8
------------------------------------------------------
查看windows控制台默认编码:
cmd打开控制台---->属性---->查看编码为936(简体中文GBK)
(进一步在linux和windows下新建文本文件查看编码方式果然没错,证实。)