python中文乱码总结
2016-12-23 14:18
381 查看
1、python2中的字符编码
str每个字符由8位字节表示,unicode每个字是由16位二进制数字表示。
有一个中文字符串:“授权token过期”,可以保存成string类型,也可以保存成为unicode类型;
使用unicode编码,则为:
使用string编码,则是:
授权token过期
注:还需要将客户端xshell的显示格式设置为Unicode(UTF-8),否则显示是乱码,而不是中文字符
2、requests中的response返回信息
在调用HTTP请求时使用requests进行封装,返回存放在Response对象里,这个对象的text是unicode,content字段是string类型,如下:
3.一个例子
str每个字符由8位字节表示,unicode每个字是由16位二进制数字表示。
有一个中文字符串:“授权token过期”,可以保存成string类型,也可以保存成为unicode类型;
使用unicode编码,则为:
>>> t=u"\u6388\u6743token\u8fc7\u671f" >>> print t 授权token过期 >>> print isinstance(t, unicode) True
使用string编码,则是:
>>> s="\xe6\x8e\x88\xe6\x9d\x83token\xe8\xbf\x87\xe6\x9c\x9f" >>> print s
授权token过期
>>> print isinstance(s, str) True
注:还需要将客户端xshell的显示格式设置为Unicode(UTF-8),否则显示是乱码,而不是中文字符
2、requests中的response返回信息
在调用HTTP请求时使用requests进行封装,返回存放在Response对象里,这个对象的text是unicode,content字段是string类型,如下:
-> ret, content = self.process_request(method, url, headers, params) (Pdb) n -> if ret.status_code == 200: (Pdb) p ret.content '{"status":1,"info":"\xe4\xbb\xbb\xe5\x8a\xa1url\xe6\xa0\xbc\xe5\xbc\x8f\xe9\x94\x99\xe8\xaf\xaf\xe6\x88\x96\xe4\xb8\xba\xe7\xa9\xba","error_code":10001}' (Pdb) p ret.content.decode("utf-8") #将string转换成unicode编码 u'{"status":1,"info":"\u4efb\u52a1url\u683c\u5f0f\u9519\u8bef\u6216\u4e3a\u7a7a","error_code":10001}' (Pdb) p ret.text u'{"status":1,"info":"\u4efb\u52a1url\u683c\u5f0f\u9519\u8bef\u6216\u4e3a\u7a7a","error_code":10001}' (Pdb) p ret.text.encode('utf-8') #将unicode转换成string '{"status":1,"info":"\xe4\xbb\xbb\xe5\x8a\xa1url\xe6\xa0\xbc\xe5\xbc\x8f\xe9\x94\x99\xe8\xaf\xaf\xe6\x88\x96\xe4\xb8\xba\xe7\xa9\xba","error_code":10001}'
3.一个例子
>>> m="授权token过期" >>> print m 授权token过期 >>> print isinstance(m, str) True >>> print isinstance(m, unicode) False >>> >>> n=u"授权token过期" >>> print n 授权token过期 >>> print isinstance(n, unicode) True >>> print isinstance(n, str) False >>> print m.decode('utf-8') #将string类型解码成utf类型,这时候shell设置为Unicode(UTF-8),则显示正常 授权token过期 >>> print m.decode('gbk') #将string类型解码成gbk类型,这时候shell设置为Unicode(UTF-8),则显示成乱码 鎺堟潈token杩囨湡
相关文章推荐
- 238. Product of Array Except Self
- python split() 函数
- 理解Python并发编程一篇就够了 | 进程篇
- Sublime2编辑器编写Python脚本的快捷操作
- 理解Python并发编程一篇就够了|线程篇
- python中的Queue与多进程(multiprocessing)
- burp扩展小工具
- win10上Anaconda 多版本共存与tensorflow安装
- 使用 Django 和 Python 开发 Web 站点
- Python 三大神器
- 用 python 实现各种排序算法
- python机器学习算法速查
- python 进度条的编写
- python操作mysql数据库
- 从零开始学Python-day8
- Python格式化输出
- 【caffe源码研究】第二章:使用篇(4) : python接口
- Python中urllib模块的使用
- 22 Python class 深入理解Python中的元类(metaclass)
- python使用xlrd模块读写excel