使用Python解码编码未知中国传统的字符串(Decoding unknown encoded Tr

2019-07-31 10:48发布

您好我有一个网站,是中国传统,当我检查该网站的统计数据也告诉我,对于网站的搜索词是å%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