您好我有一个网站,是中国传统,当我检查该网站的统计数据也告诉我,对于网站的搜索词是å%8f°å%8d%97 親å%90é¤%90廳
这显然使得没有意义的我。 我的问题是被称为这是什么编码? 并有使用Python来此字符串解码方式。 谢谢。
Answer 1:
它被称为狗编码; 底层字节已经血肉模糊,根本无法原来的含义,并且它们不再是真正的编码。
它曾经URL引用的UTF-8,但现在解释为Latin-1的无unquoting这些URL逃逸。 我能够将其解释为对等未裂伤这样的:
>>> from urllib2 import unquote
>>> bytesquoted = u'å%8f°å%8d%97 親å%90é¤%90廳'.encode('latin1')
>>> unquoted = unquote(bytesquoted)
>>> print unquoted.decode('utf8')
台南 親子餐廳
Answer 2:
您可以使用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
。
文章来源: Decoding unknown encoded Traditional Chinese character strings using Python