Pregunta

Tengo un problema extraño con lxml al usar la versión implementada de mi aplicación Django. Utilizo lxml para analizar otra página HTML que obtengo de mi servidor. Esto funciona perfectamente bien en mi servidor de desarrollo en mi propia computadora, pero por alguna razón me da UnicodeDecodeError en el servidor.

('utf8', "\x85why hello there!", 0, 1, 'unexpected code byte')

Me he asegurado de que Apache (con mod_python) se ejecute con LANG = 'en_US.UTF-8' .

He intentado buscar en Google para este problema e intentado diferentes enfoques para decodificar la cadena correctamente, pero no puedo resolverlo.

En su respuesta, puede suponer que mi cadena se llama hello o algo así.

¿Fue útil?

Solución

" \ x85por qué hola! " no es una cadena codificada en utf-8. Debe intentar decodificar la página web antes de pasarla a lxml. Verifique qué codificación utiliza mirando los encabezados http cuando recupera la página, tal vez encuentre el problema allí.

Otros consejos

¿La sintaxis como u " \ x85why hello there! " ayuda?

Puede encontrar útiles los siguientes recursos de la documentación oficial de Python:

Ya que modificar site.py no es una solución ideal, intente esto al inicio de su programa:

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top