第一种:html模块,强烈推荐
import html
print(html.unescape('中国'))
第二种:自定义函数
#第二种方法
def convert_unicode(text):
text = text.replace('&#', '')
text = [i for i in text.split(';') if i]
text = [hex(int(i)) for i in text]
text = [i.replace('0x', '') for i in text]
string = ''
flag = '\\u'
for i in text:
string += flag + format(i, '0>4s')
return string.encode('utf-8').decode('unicode-escape')
a = '缝头印'
print(convert_unicode(a))
第三种:使用HTMParse模块
#第三种方法
import HTMLParser
s = '【试呼】'
h = HTMLParser.HTMLParser()
print(h.unescape(s))
但是第三种方法不是pip install HTMLParser就完了运行会报错,可以参考博客
python3 解决&#开头的Unicode编码的字符串问题的通用方法_☰ python_zhaojiafu666的博客-CSDN博客
由于麻烦点因此不推荐第三种方法。
最后还有人需要把中文转成&#格式这里我写个一个函数,大家可以试试
a = '缝头印'
b = '缝头印'
def chinese2html(chars):
all = chars.encode('unicode-escape').decode()
lines = all.split('\\u')[1:]
result = ''
for line in lines:
result += "&#" + str(int(line, 16)) + ';'
return result
res = chinese2html(b)
print(res)