Pergunta

Eu tenho um problema estranho com lxml ao usar a versão implantada do meu aplicativo Django. Eu uso lxml para analisar outra página HTML que eu vou buscar do meu servidor. Isso funciona perfeitamente bem no meu servidor de desenvolvimento no meu próprio computador, mas por algum motivo ele me dá UnicodeDecodeError no servidor.

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

Eu tenho a certeza que o Apache (com mod_python) é executado com LANG='en_US.UTF-8'.

Eu tentei googling para este problema e tentou diferentes abordagens para decodificar a seqüência corretamente, mas eu não consigo descobrir isso.

Na sua resposta, você pode assumir que a minha string é chamado hello ou algo assim.

Foi útil?

Solução

"\ x85why Olá lá!" não é uma string codificado utf-8. Você deve tentar decodificar a página da Web antes de passá-lo para lxml. Verifique qual codificação que utiliza, olhando para o http cabeçalhos quando você buscar a página talvez você encontrar o problema lá.

Outras dicas

não sintaxe como u"\x85why hello there!" ajuda?

Você pode encontrar os seguintes recursos da documentação oficial do Python útil:

Desde modificar site.py não é uma solução ideal tentar fazer isso no início do seu programa:

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top