如何在 Python 中修复损坏的 utf-8 编码?

2024-05-18 14:22:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字符串是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,但字符串显示不是我期望的结果。

注意:这是越南语字符。

如何解决那个案子?是Windows Unicode还是什么?如何检测这里的编码。


Tags: 字符串comhttp网站wwwutf8解码utf
3条回答

我不知道你能用这些数据做些什么,但是对于你在原始文章中的例子,这是有效的:

>>> 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

尝试:

str.encode('ascii', 'ignore').decode('utf-8')

您将字符串编码为ASCII格式/忽略错误并解码为UTF-8格式。这可能会消除口音,但这是一种方法。

唯一能帮我解决西里尔文断线的是-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轻松安装

相关问题 更多 >

    热门问题