Python--字符串

@、字符串中的特殊编码转码

import html
from urllib import parse


def test_unicode():
    # data = r'{"status":-5,"msg":"u7528u6237u540du6216u5bc6u7801u9519u8befuff0cu8fd8u52696u6b21u673au4f1auff0cu5982u5fd8u8bb0u5bc6u7801u8054u7cfbu5ba2u670du5904u7406","data":[]}'
    # 下面字符串内容是:用户名或密码错误,还剩6次机会,如忘记密码联系客服处理
    data = r'u7528u6237u540du6216u5bc6u7801u9519u8befuff0cu8fd8u52696u6b21u673au4f1auff0cu5982u5fd8u8bb0u5bc6u7801u8054u7cfbu5ba2u670du5904u7406'
    # 如果是一个json格式的字符串,可以用json.loads
    # print(json.loads(data))
    print(data.encode().decode("unicode_escape"))


def test_unescape():
    data = "<title>&#20135;&#21697;&#30331;&#35760;&#20449;&#24687;</title>"
    source = html.unescape(data)
    print(source)
    print(html.escape(source))
    ''' 输出结果
        <title>产品登记信息</title>
        &lt;title&gt;产品登记信息&lt;/title&gt;
    '''


def test_quote():
    data = "你好"
    sign = parse.quote(data)
    print(sign)
    print(parse.unquote(sign))
    ''' 输出结果
        %E4%BD%A0%E5%A5%BD
        你好
    '''


test_unicode()
test_unescape()
test_quote()

''' 输出结果
用户名或密码错误,还剩6次机会,如忘记密码联系客服处理
<title>产品登记信息</title>
&lt;title&gt;产品登记信息&lt;/title&gt;
%E4%BD%A0%E5%A5%BD
你好
'''
View Code

 @、关于&#开头的编码说明

原文:https://blog.csdn.net/zt3032/article/details/80850381

关键词:NCR(numeric character reference, 数字字符引用)

有了数字字符引用,就可以在网页中显示Unicode字符了,不用考虑html文件本身的编码,因为数字字符引用只用到ASCII字符集里的字符。所以,即使在gb2312编码的网页中,也可以用NCR显示埃及的象形文字了。

NCR编码是由一个与号(&)跟着一个井号(#), 然后跟着这个字符的Unicode编码值, 最后跟着一个分号组成的, 如:
    &#nnnn; 或者 &#xhhhh;
其中, nnnn是字符编码的十进制表示, 而hhhh是字符的16进制表示.
另外要注意的是x在xml中必须是小写的.而hhhh可以大小写混用, 另外nnnn和hhhh也可以有前导零。
 
原文地址:https://www.cnblogs.com/yarightok/p/15337742.html