• 技术文章 >常见问题 >Python常见问题

    怎么处理Python字符编码转换?

    silencementsilencement2019-07-22 11:25:45原创4835

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

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

    encode将

    unicode-----> str

    decode

    unicode <-------str

    几种常用法:

    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怎样忽略warning警告错误?

    相关文章推荐

    • Python新手必看之文本文件的输入输出• Python小白的福利之基本数据类型

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网