@、字符串中的特殊编码转码
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>产品登记信息</title>" source = html.unescape(data) print(source) print(html.escape(source)) ''' 输出结果 <title>产品登记信息</title> <title>产品登记信息</title> ''' 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> <title>产品登记信息</title> %E4%BD%A0%E5%A5%BD 你好 '''
@、关于&#开头的编码说明
原文: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也可以有前导零。