嗨,我有一个繁体中文网站,当我查看网站统计信息时,它告诉我该网站的搜索词对å%8f°å%8d%97 親å%90é¤%90廳
我来说显然没有意义。我的问题是这种编码叫什么?有没有办法使用 Python 来解码这个字符串。谢谢你。
问问题
6646 次
2 回答
5
它被称为 mutt 编码;底层字节已超出其原始含义,它们不再是真正的编码。
它曾经是 URL 引用的 UTF-8,但现在被解释为 latin-1 而没有取消引用那些 URL 转义。我能够通过这样解释它来解决这个问题:
>>> from urllib2 import unquote
>>> bytesquoted = u'å%8f°å%8d%97 親å%90é¤%90廳'.encode('latin1')
>>> unquoted = unquote(bytesquoted)
>>> print unquoted.decode('utf8')
台南 親子餐廳
于 2012-09-07T11:11:37.713 回答
1
您可以使用chardet。使用以下命令安装库:
pip install chardet
# or for python3
pip3 install chardet
该库包含一个 cli 实用程序chardetect
(或chardetect3
相应的),它采用文件的路径。
一旦你知道了编码,你就可以在 python 中使用它,例如:
codecs.open('myfile.txt', 'r', 'GB2312')
或从外壳:
iconv -f GB2312 -t UTF-8 myfile.txt -o decoded.txt
如果您需要更高的性能,那么还有cchardet — 一个更快的 C 优化版本的chardet
.
于 2019-01-24T20:34:13.760 回答