Deencoding de cadenas de caracteres en chino tradicional codificadas desconocidas utilizando Python

Hola, tengo un sitio web que está en chino tradicional y cuando reviso las estadísticas del sitio, me dice que el término de búsqueda para el sitio web es å%8f°å%8d%97 親å%90é¤%90廳 que obviamente hace no tiene sentido para mi Mi pregunta es ¿cómo se llama esta encoding? Y hay una manera de usar Python para decodificar esta cadena de caracteres. Gracias.

Se llama una encoding mutt; Los bytes subyacentes han sido destrozados más allá de su significado original y ya no son una encoding real.

Alguna vez fue UTF-8 citado con URL, pero ahora se interpreta como latin-1 sin anular los escapes de URL. Pude desarmar esto al interpretarlo como tal:

 >>> from urllib2 import unquote >>> bytesquoted = u'å%8f°å%8d%97 親å%90é¤%90廳'.encode('latin1') >>> unquoted = unquote(bytesquoted) >>> print unquoted.decode('utf8')台南 親子餐廳 

Puedes usar chardet . Instala la biblioteca con:

 pip install chardet # or for python3 pip3 install chardet 

La biblioteca incluye una utilidad cli chardetect (o chardetect3 consecuencia) que lleva la ruta a un archivo.

Una vez que conozca la encoding, puede usarla en python, por ejemplo, como este:

 codecs.open('myfile.txt', 'r', 'GB2312') 

o desde shell:

 iconv -f GB2312 -t UTF-8 myfile.txt -o decoded.txt 

Si necesita más rendimiento, también hay cchardet , una versión más chardet de chardet C optimizado.