编码

作者: 交易狗二哈 | 来源:发表于2017-04-15 21:17 被阅读55次

    对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

    >>> ord('A')
    65
    >>>chr(65)
    'A'
    >>>ord('我')
    25105
    chr(25105)
    '我'
    

    Python对bytes类型的数据用带b前缀的单引号或双引号表示:

    >>> x = b'ABC'
    >>> type(x)
    <class 'bytes'>
    

    纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。

    >>> str = '我是'
    >>> str.encode('UTF-8')
    b'\xe6\x88\x91\xe7\x9a\x84'
    >>> b'\xe6\x88\x91\xe7\x9a\x84'.decode('UTF-8')
    '我的'
    

    如果是 \u6ce8\u91ca 类型的,直接 print输出就是汉字

    >>> print('\u6ce8\u91ca')
    注释
    

    或者用 decode

    >>> s = b'\u6ce8\u91ca' #python在前面加 b或者 encode()
    >>> s.decode('unicode-escape')
    '注释'
    

    如果是 \u7f8e\u56fd 类型的,可以用上面的方法或者调用 json

    >>> import json
    >>> d = '\\u7f8e\\u56fd'
    >>> x = json.loads('{"foo":"%s"}'%d)
    >>> x0=x['foo']
    >>> print(x0)
    美国
    

    相关文章

      网友评论

          本文标题:编码

          本文链接:https://www.haomeiwen.com/subject/smdoattx.html