我的字符串是Niệm Bồ Tát (Thiá»n sÆ° Nhất Hạnh)
,我想将其解码为Niệm Bồ Tát (Thiền sư Nhất Hạnh)
。我看到该网站可以执行http://www.enderminh.com/minh/utf8-to-unicode-converter.aspx
我开始尝试使用Python
mystr = '09. Bát Nhã Tâm Kinh'
mystr.decode('utf-8')
但实际上它不正确,因为原始字符串是utf-8但是字符串show不是我期望的结果。
注意:这是越南文字。
如何解决这个案子?那是Windows Unicode还是什么?如何在这里检测编码。
答案 0 :(得分:10)
我不确定您可以对这些数据做些什么,但对于您在原始帖子中的示例,这有效:
>>> mystr = '09. Bát Nhã Tâm Kinh'
>>> s = mystr.decode('utf8').encode('latin1').decode('utf8')
>>> s
u'09. B\xe1t Nh\xe3 T\xe2m Kinh'
>>> print(s)
09. Bát Nhã Tâm Kinh
答案 1 :(得分:10)
唯一帮助我破解西里尔字符串的事情 - https://github.com/LuminosoInsight/python-ftfy
这个模块几乎可以解决所有问题,并且比在线解码器工作得更好。
>>> from ftfy import fix_encoding
>>> mystr = '09. Bát Nhã Tâm Kinh'
>>> fix_encoding(mystr)
'09. Bát Nhã Tâm Kinh'
可以使用pip install ftfy
答案 2 :(得分:0)
尝试:
str.encode('ascii', 'ignore').decode('utf-8')
您正在以ASCII格式编码字符串/忽略错误并以UTF-8解码。这可以消除重音,但这是一种方法。