python编码的一些问题
标签(空格分隔):python
比较好的一篇博客:
http://blog.csdn.net/pipisorry/article/details/44136297
windows 控制台默认采用’gbk’编码方式,Linux默认采用‘utf-8’编码方式。
可采用 import chardet 来查看字符串编码方式:
如下代码是在pycharm中运行
# -*- coding: utf-8 -*-
import chardet
f = open(unicode(r"C:\测试\2样.txt", "utf-8"), 'r+')
str1 = f.read()
print chardet.detect(str1)
print str1
f.close()
结果:
{'confidence': 1.0, 'encoding': 'UTF-8-SIG'}
这是中文读取测试
当然也包括英文:adjaga
12334
****
@@@
结束
UTF-8和 UTF-8-SIG不一样
如下代码是在windows控制台运行:
>>> import chardet
>>> f = open(r"C:\测试\2样.txt",'r')
>>> str1 = f.read()
>>> print chardet.detect(str1)
{'confidence': 1.0, 'encoding': 'UTF-8-SIG'}
>>> print str1.decode('utf-8-sig')
这是中文读取测试
当然也包括英文:adjaga
12334
****
@@@
结束
>>> print str1.decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'gbk' codec can't encode character u'\ufeff' in position 0: illegal multibyte sequence
待更新。。。