Python3中如何得到Unicode码对应的中文? - 知乎
文章推薦指數: 80 %
从本质上来说,编码和解码就是Python中str和bytes这两种字符串类型之间的互相转换。
... python 3+之后的版本,无论输入输出是什么格式,中间转接的都是Unicode格式。
Unicode(统一码)Python3.x爬虫(计算机网络)JSONPython3中如何得到Unicode码对应的中文?1.已经知道这种情况:[图片]2.在爬取知乎专栏文章时,response的内容是json格式的,print(response.read().dec…显示全部关注者143被浏览118,505关注问题写回答邀请回答好问题1条评论分享16个回答默认排序知乎用户144人赞同了该回答先检查text是什么类型如果type(text)isbytes,那么text.decode('unicode_escape')如果type(text)isstr,那么text.encode('latin-1').decode('unicode_escape')
发布于2015-05-3122:20赞同14436条评论分享收藏喜欢收起石溪数学话题下的优秀答主关注9人赞同了该回答也欢迎关注我的知乎账号@石溪,将持续发布机器学习数学基础及Python数据分析编程应用等方面的精彩内容。
我从Python字符串的编码和解码的角度来说说这个问题。
字符编码对于理解非英语字符的有关内容非常有帮助。
从本质上来说,编码和解码就是Python中str和bytes这两种字符串类型之间的互相转换。
str包含一个encode方法,使用特定编码将该字符串其转换为一个bytes,这称之为编码。
bytes类包含了一个decode方法,也接受一个编码作为单个必要参数,并返回一个str,这称之为解码。
这种转换操作是显式的操作,且必须根据数据被编码时采用的编码类型进行解码。
首先说说编码,即将unicode的str文本字符串转换为bytes的字节字符串,可以显式的传入指定编码(一般来说采用utf-8编码),或使用平台的默认编码。
s='π排球の'
b1=s.encode('utf-8')
b2=s.encode()
print(b1)
print(b2)
b'\xcf\x80\xe6\x8e\x92\xe7\x90\x83\xe3\x81\xae'
b'\xcf\x80\xe6\x8e\x92\xe7\x90\x83\xe3\x81\xae'那么我们看看,在不写编码的时候,平台默认的编码方式到底是什么importsys
print(sys.platform)
print(sys.getdefaultencoding())
win32
utf-8可以看出我这个平台默认选择的就是utf-8编码方式。
那对应的,再来谈谈decode解码方法将bytes类型字符串转换成str类型的unicode文本字符串也是一样,要么指定编码参数,要么使用平台的默认参数。
这个例子中,我们要操作的字节字符串b是通过utf-8编码方式对文本字符串'π排球の'编码而形成的。
b=b'\xe6\x8e\x92\xe7\x90\x83'
s1=b.decode(encoding='utf-8')
s2=b.decode()
s3=b.decode(encoding='latin-1')
print(s1)
print(s2)
print(s3)
排球
排球
排çƒ从结果中我们可以看出,我们利用utf-8对字节字符串进行解码,可以获得正确的汉字字符串。
而值得注意的是,最后一行代码想通过latin-1解码字节字符串,由于字节字符串是通过utf-8编码形成,因此这样解码形成得到的只能是乱码。
希望从这个角度,有助于大家对于获取中文有了更好的理解。
关于Python编程和数据分析更全面的内容,欢迎关注我在CSDN上的专栏《python数据分析编程基础》。
当然还有《机器学习中的数学-全集》系列专栏,欢迎大家阅读,配合食用,效果更佳~有订阅的问题可咨询微信:zhangyumeng0422编辑于2021-06-0114:57赞同92条评论分享收藏喜欢收起
延伸文章資訊
- 1Day27 Python 基礎- 字符轉編碼操作 - iT 邦幫忙
回顧字符編碼的前世今生. ASCII 只能儲英文或特殊字符,只占一個字節,一個字節8bit,不能儲中文,所以才出現Unicode. Unicode 不管是中文或英文,都是占二個字節, ...
- 2Unicode in Python3 - 简书
Unicode and UTF-8 首先我们要理清两个事实: 所有东西(file, ... 在Python3 中,有str, bytes, bytearray。str type 存储的是Unic...
- 3Unicode HOWTO — Python 3.10.7 documentation
Since Python 3.0, the language's str type contains Unicode characters, meaning any string created...
- 4How to make unicode string with python3 - Stack Overflow
Literal strings are unicode by default in Python3. Assuming that text is a bytes object, just use...
- 5Byte string, Unicode string, Raw string — A Guide to all strings ...
In Python3, the default string is called Unicode string (u string), you can understand them as hu...