Python--字符串
@、字符串中的特殊编码转码
import html from urllib import parse def test_unicode(): # data = r'{"status":-5,"msg":"\u7528\u6237\u540d\u6216\u5bc6\u7801\u9519\u8bef\uff0c\u8fd8\u52696\u6b21\u673a\u4f1a\uff0c\u5982\u5fd8\u8bb0\u5bc6\u7801\u8054\u7cfb\u5ba2\u670d\u5904\u7406","data":[]}' # 下面字符串内容是:用户名或密码错误,还剩6次机会,如忘记密码联系客服处理 data = r'\u7528\u6237\u540d\u6216\u5bc6\u7801\u9519\u8bef\uff0c\u8fd8\u52696\u6b21\u673a\u4f1a\uff0c\u5982\u5fd8\u8bb0\u5bc6\u7801\u8054\u7cfb\u5ba2\u670d\u5904\u7406' # 如果是一个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也可以有前导零。
@、可以直接按字面连接
只是字面量拼接,不能用于字符串变量直接拼接
print("123"
'456'
'789')
# 结果:123456789
@、原始字符串 r
# print(r'c:\a\b\') # 字符串最后一个字符不能是\,否则报错:SyntaxError: EOL while scanning string literal print(r'c:\a\b' '\\') # 最后一个\可使用独立的字符串
@、str与repr
str是一个类,以用户友好的方式输出字符串
repr是一个内置函数,以程序员友好的方式输出字符串
s = "hello, \nworld" print(str(s)) print(repr(s)) ''' 结果 hello, world 'hello, \nworld' '''