首页 > 使用python如何得到此种编码测试所对应的中文呢

使用python如何得到此种编码测试所对应的中文呢

整理了以下几种编码

编码1测试

编码2\u6d4b\u8bd5

编码3测试

编码4%e6%b5%8b%e8%af%95

在编程过程中,经常会碰到很多的编码格式的数据,现在自己对于N多的编码格式还是一头雾水。
不知道大家是怎么准确识别各种编码的呢?
另外:使用python如何得到此种编码测试所对应的中文呢?


余兴节目。

前三个都是Unicode原始值,最后一个是UTF-8。简单的用Python说明一下:

>>> s=b'\xe6\xb5\x8b\xe8\xaf\x95'
>>> print(s.decode('utf-8'))
测试
>>> u=u'\u6d4b\u8bd5'
>>> print(u)
测试

每个Unicode字符的编码只有一个,表示为一个或长或短的十六进制数。但把一串Unicode转换成真正用于存储和传输的字节序列,办法很多。UTF-8就是使用最广泛(绝大多数情况下也应该使用)的一种Unicode编码方法。

至于格式的不同,只是用的地方不一样,用不同的格式封一下。我记得编码1和3是HTML实体,2是Python的Unicode字符表示法,4是URL中不能直写字符的转义表示法。


1 和 3 是HTML实体,可以通过标准库HTMLParser 来解析:

#coding=utf8

import HTMLParser

parser = HTMLParser.HTMLParser()
s1 = parser.unescape('测试')
print s1
# output: 测试
s2 = parser.unescape('测试')
print s2
# output: 测试 

2 是unicode 字面值,要想获得真正的unicode,可以这样做:

In [1]: u = unicode('\u6d4b\u8bd5', 'unicode_escape')
In [2]: u
Out[2]: u'\u6d4b\u8bd5'
In [3]: print u
测试
【热门文章】
【热门文章】