学堂 学堂 学堂公众号手机端

Python进行字符编码转换怎么做,要注意什么

lewis 6年前 (2019-10-15) 阅读数 7 #技术
在这篇文章中,我们来学习一下“Python进行字符编码转换怎么做,要注意什么”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。
    



python 有str object 和 unicode object 两种字符串, 都可以存放字符的字节编码,但是他们是不同的type,这一点很重要,也是为什么会有encode 和decode。

encode 和 decode在pyhton 中的意义可表示为

encode

unicode -------------------------> str

unicode <--------------------------str

decode

几种常用法:

str_string.decode('codec') 是把str_string转换为unicode_string, codec是源str_string的编码方式

unicode_string.encode('codec') 是把unicode_string 转换为str_string,codec是目标str_string的编码方式

str_string.decode('from_codec').encode('to_codec') 可实现不同编码的str_string之间的转换

比如:

>>> t='长城'

>>> t

'\xb3\xa4\xb3\xc7'

>>> t.decode('gb2312').encode('utf-8')

'\xe9\x95\xbf\xe5\x9f\x8e'

str_string.encode('codec') 是先调用系统的缺省codec去把str_string转换为unicode_string,然后用encode的参数codec去转换为最终的str_string. 相当于str_string.decode('sys_codec').encode('codec')。

unicode_string.decode('codec') 基本没有意义,unicode 在python里只用一种unicode编码,UTF16或者UTF32(编译python时就已经确定),没有编码转换的需要。

注:缺省codec在site-packages下的sitecustomize.py文件中指定,比如

import sys

sys.setdefaultencoding('utf-8')



感谢各位的阅读,以上就是“Python进行字符编码转换怎么做,要注意什么”的内容了,经过本文的学习后,相信大家对Python进行字符编码转换怎么做,要注意什么都有更深刻的体会了吧。这里是博信,小编将为大家推送更多相关知识点的文章,欢迎关注!
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门