马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 wp231957 于 2020-3-8 11:11 编辑
一、unicode 转str
s="\u5e7402\u670809\u65e5"
print(s.encode(encoding="utf-8").decode(encoding="utf-8"))
#年02月09日
title="\u519c\u6751\u91cc\u8fd9\u4e09\u4e2a\u8d26\u8981\u6e05\u4e86\uff0c\u5168\u90e8\u90fd\u8981\u4e25\u67e5\uff0c\u548c\u6bcf\u4e2a\u519c\u6751\u4eba\u90fd\u6709\u5173\u7cfb"
print(title.encode(encoding="utf-8").decode(encoding="utf-8"))
#农村里这三个账要清了,全部都要严查,和每个农村人都有关系
title="\u4e16\u754c\u6700\u201c\u7a00\u6709\u201d\u7684\u7329\u7329\uff0c\u5168\u8eab\u4e0d\u957f\u4e00\u6839\u6bdb\u53d1\uff0c\u5973\u6e38\u5ba2\uff1a\u770b\u4e86\u771f\u662f\u5c34\u5c2c"
print(title.encode(encoding="utf-8").decode(encoding="utf-8"))
#世界最“稀有”的猩猩,全身不长一根毛发,女游客:看了真是尴尬
二、反向转换呢 str转unicode 当然也能实现了title="世界最“稀有”的猩猩,全身不长一根毛发,女游客:看了真是尴尬"
print(title.encode("unicode_escape"))
#b'\\u4e16\\u754c\\u6700\\u201c\\u7a00\\u6709\\u201d\\u7684\\u7329\\u7329\\uff0c\
# \u5168\\u8eab\\u4e0d\\u957f\\u4e00\\u6839\\u6bdb\\u53d1\\uff0c\\u5973\\u6e38\\u5ba2
# \\uff1a\\u770b\\u4e86\\u771f\\u662f\\u5c34\\u5c2c'
#原来这是一个<class 'bytes'>
三、关于 str unicode bytes 补充几个测试
t="中华人民共和国"
print(t.encode("unicode_escape"))
# 输出:b'\\u4e2d\\u534e\\u4eba\\u6c11\\u5171\\u548c\\u56fd'
print(t.encode("utf-8"))
#输出:b'\xe4\xb8\xad\xe5\x8d\x8e\xe4\xba\xba\xe6\xb0\x91\xe5\x85\xb1\xe5\x92\x8c\xe5\x9b\xbd'
x=b'\xe4\xb8\xad\xe5\x8d\x8e\xe4\xba\xba\xe6\xb0\x91\xe5\x85\xb1\xe5\x92\x8c\xe5\x9b\xbd'
print(x.decode(encoding="utf-8"))
#输出:中华人民共和国
s='\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd'
print(s.encode(encoding="utf-8").decode(encoding="utf-8"))
#输出:中华人民共和国
s=b'\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd'
print(s.decode(encoding="unicode_escape"))
#输出:中华人民共和国
s='\\u4e2d\\u534e\\u4eba\\u6c11\\u5171\\u548c\\u56fd'
print(s.encode(encoding="utf-8").decode(encoding="utf-8"))
#输出:\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd
s='\\u4e2d\\u534e\\u4eba\\u6c11\\u5171\\u548c\\u56fd'
print(s.encode(encoding="utf-8").decode(encoding="unicode_escape"))
#输出:中华人民共和国
s=b'\\u4e2d\\u534e\\u4eba\\u6c11\\u5171\\u548c\\u56fd'
print(s.decode(encoding="unicode_escape"))
#输出:中华人民共和国
四、相信大家对于类似%5B%22sc%22%2C%22hd%22%5D%7B 这样的串串不陌生吧
下面贴出解码。这个串串的编码相对就简单了一些,就不贴测试了,对 把unquote的前缀去掉就可以了
# 浏览器地址栏中的参数的转码
# javascript代码
# list="%5B%22sc%22%2C%22hd%22%5D%7B";
# console.log(unescape(list));
import urllib.request
s="%5B%22sc%22%2C%22hd%22%5D%7B"
sz=urllib.parse.unquote(s)
print(sz)
#实测,和js代码返回结果一致
#["sc","hd"]{
#好吧,本来就不想使用urllib这个库呢,那么requests里是否有quote/unquote呢
import requests
s="%5B%22sc%22%2C%22hd%22%5D%7B"
sz=requests.utils.unquote(s)
print(sz)
#实测,和urlib.parse返回结果一致
#["sc","hd"]{
|