您好我有一个繁体中文网站,当我查看网站统计信息时,它告诉我该网站的搜索字词为å%8f°å%8d%97 親å%90é¤%90廳
,这显然对我没有意义。我的问题是这个编码叫什么?有没有办法使用Python来解码这个字符串。谢谢。
答案 0 :(得分:4)
它被称为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')
台南 親子餐廳
答案 1 :(得分:0)
您可以使用chardet。使用以下命令安装库:
pip install chardet
# or for python3
pip3 install chardet
该库包含一个cli实用程序chardetect
(或相应的chardetect3
),该实用程序采用文件路径。
一旦知道了编码,就可以在python中使用它,例如:
codecs.open('myfile.txt', 'r', 'GB2312')
或从shell:
iconv -f GB2312 -t UTF-8 myfile.txt -o decoded.txt
如果您需要更高的性能,那么还可以使用 cchardet -一种更快的C优化版本的chardet
。