当前位置 : 主页 > 网络编程 > 其它编程 >

Python编程字符串的编码转换、存储及乱码问题

来源:互联网 收集:自由互联 发布时间:2023-07-02
转自http:www.qmailer.netarchives251.htmlPython2包括Python26、Python27等的 转自http://www.qmailer.net/archives/251.html Python2包括Python26、Python27等的字符串通常包含str、unicode两种类型通常str的字符串编码方式
转自http:www.qmailer.netarchives251.htmlPython2包括Python26、Python27等的

转自http://www.qmailer.net/archives/251.html

Python2包括Python26、Python27等的字符串通常包含str、unicode两种类型通常str的字符串编码方式由源码文件的编码方式决定目前使用的基本都是UTF-8的编码格式所以要在py文件的头部指定编码格式

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

在Python程序内部通常使用的字符串为unicode编码这样的字符串字符是一种内存编码格式如果将这些数据存储到文件或是记录日志的时候就需要将unicode编码的字符串转换为特定字符集的存储编码格式比如UTF-8、GBK等等很多时候Python程序员都会遇到乱码问题相信以下的一些处理方式和技巧能帮助大家解决乱码问题。

unicode到utf-8转换方法unicodestr.encode(‘utf-8’) 示例

1 2 >>> u中文测试.encode(utf-8) \xe4\xb8\xad\xe6\x96\x87\xe6\xb5\x8b\xe8\xaf\x95

utf-8到unicode转换方法utf8str.decode(‘utf-8’)示例

1 2 >>> 中文测试.decode(utf-8) u\u4e2d\u6587\u6d4b\u8bd5

实际上在将unicode存储到文本的过程中还有一种存储方式不需要将unicode转换为实际的文本存储字符集而是将unicode的内存编码值进行存储读取文件的时候再反向转换回来是采用unicode-escape的转换方式。

unicode到unicode-escape转换方法unicodestr.encode(‘unicode-escape’)示例

1 2 >>> u中文测试.encode(unicode-escape) \\u4e2d\\u6587\\u6d4b\\u8bd5

unicode-escape到unicode的转换方法unicodeescapestr.decode(‘unicode-escape’)示例

1 2 >>> \\u4e2d\\u6587\\u6d4b\\u8bd5.decode(unicode-escape) u\u4e2d\u6587\u6d4b\u8bd5

对于utf-8编码的字符串在存储的时候通常是直接存储而实际上也还有一种存储utf-8编码值的方法即string-escape。 utf-8到string-escape的转换方法utf8str.encode(‘string-escape’)示例

1 2 3 4 >>> 中文测试.encode(string-escape) \\xe4\\xb8\\xad\\xe6\\x96\\x87\\xe6\\xb5\\x8b\\xe8\\xaf\\x95 >>> print \\xe4\\xb8\\xad\\xe6\\x96\\x87\\xe6\\xb5\\x8b\\xe8\\xaf\\x95 \xe4\xb8\xad\xe6\x96\x87\xe6\xb5\x8b\xe8\xaf\x95

string-escape到utf-8的转换方法strescapestr.decode(‘string-escape’)示例

1 2 3 4 >>>’\\xe4\\xb8\\xad\\xe6\\x96\\x87\\xe6\\xb5\\x8b\\xe8\\xaf\\x95.decode(string-escape) \xe4\xb8\xad\xe6\x96\x87\xe6\xb5\x8b\xe8\xaf\x95’ >>> print \xe4\xb8\xad\xe6\x96\x87\xe6\xb5\x8b\xe8\xaf\x95 中文测试

备注 unicode同时还支持的编码转换包括

1 2 3 idna raw_unicode_escape utf_8_sig

utf-8、gbk等编码字符串还支持得编码转换包括

1 2 3 4 5 6 7 base64 quopri bz2 hex unicode_internal uu zlib
上一篇:python爬虫医院排行(requestshtml)
下一篇:没有了
网友评论