python笔记6-%u60A0和\u60a0类似unicode解码

简介: 前言有时候从接口的返回值里面获取到的是类似"%u4E0A%u6D77%u60A0%u60A0"这种格式的编码,不是python里面的unicode编码。python里面的unicode编码应该是这种格式:\u4e0a\u6d77\u60a0\u60a0unicode编码-python21.

前言

有时候从接口的返回值里面获取到的是类似"%u4E0A%u6D77%u60A0%u60A0"这种格式的编码,不是python里面的unicode编码。

python里面的unicode编码应该是这种格式:\u4e0a\u6d77\u60a0\u60a0

unicode编码-python2

1.先看下python的unicode编码:\u60a0,这个是\u开头的,里面的英文是小写

# coding:utf-8

# 前面加u可以直接打印中文
a = u"\u4e0a\u6d77\u60a0\u60a0"
print(a)

# 字符串需decode成默认unicode编码
b = r"\u4e0a\u6d77\u60a0\u60a0"
print(b.decode("unicode_escape"))

2.如果在字符串前面加个u,意思是转化成unicode编码,如果获取到的是应该字符串原型,那就需要decode解码成unicode编码,python里面默认的unicode编码名称是unicode_escape

替换%-python2

1.如果是这种带%的编码,先替换成,这样就是unicode编码了,虽然里面的英文字符是大小,还好这里不区分大小写。

# coding:utf-8

c = "%u4E0A%u6D77%u60A0%u60A0"

# 解决办法一:替换%
d = c.replace("%", "\\")
print(d.decode('unicode_escape'))

解决办法二:unichr

1.先切割成单个字符,再用unichr转换成中文,再连成字符串,这个有点复杂了

# coding:utf-8
def switch_to_ch(f):
    '''转换成中文'''
    g = f.split("%u")[1:]
    h = [''+unichr(int(i, 16)) for i in g]
    return "".join(h)

if __name__ == "__main__":
    f = "%u4e0a%u6d77%u60a0%u60a0"
    ch = switch_to_ch(f)
    print(ch)

python3解码

1.python3默认的编码就是unicode,这个跟python2还不太一样,如果直接给字符串decode会报错:AttributeError: 'str' object has no attribute 'ecode'

img_cb4afbdba2043a2738c7801751f3d673.png

2.python3先encode成utf-8编码,再decode成默认的unicode就可以了

img_52ec345efe00bf931f2c249bb205be7d.png

3.代码参考

# coding:utf-8

c = "%u4E0A%u6D77%u60A0%u60A0"
# python3解决办法:替换%
d = c.replace("%", "\\")
print(d.encode("utf-8").decode("unicode_escape"))
相关文章
|
2月前
|
Python Windows
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
|
14天前
|
算法 Python
【Leetcode刷题Python】百分号解码
深信服公司的算法笔试题.
18 1
|
13天前
|
分布式计算 Python
【python笔记】高阶函数map、filter、reduce
【python笔记】高阶函数map、filter、reduce
|
13天前
|
Python
【python笔记】使用zip函数迭代多个可迭代对象
【python笔记】使用zip函数迭代多个可迭代对象
|
1月前
|
编解码 开发者 Python
【Python】已解决:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: t
【Python】已解决:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: t
35 0
|
2月前
|
存储 缓存 网络协议
技术笔记:python使用memcached
技术笔记:python使用memcached
24 0
|
2月前
|
Web App开发 存储 iOS开发
技术笔记:Python简单获取知轩藏书仙草毒草榜
技术笔记:Python简单获取知轩藏书仙草毒草榜
|
2月前
|
SQL 关系型数据库 MySQL
技术笔记:python连接mysql数据库
技术笔记:python连接mysql数据库
27 0
|
2月前
|
数据采集 存储 弹性计算
Python爬虫基础笔记
【6月更文挑战第5天】Python爬虫基础笔记
32 0
|
2月前
|
算法 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记 第4章 深度估计与分割
openCV 3计算机视觉 Python语言实现 笔记 第4章 深度估计与分割