Frage

Ich habe ein seltsames Problem mit lxml wenn der bereitgestellte Version meiner Django-Anwendung. Ich benutze lxml andere HTML-Seite zu analysieren, die ich von meinem Server holen. Das funktioniert sehr gut auf meinem Entwicklungs-Server auf meinem eigenen Computer, aber aus irgendeinem Grunde gibt es mir UnicodeDecodeError auf dem Server.

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

Ich habe dafür gesorgt, dass Apache (mit mod_python) läuft mit LANG='en_US.UTF-8'.

Ich habe für dieses Problem versucht, googeln und versuchte, verschiedene Ansätze, um die Zeichenfolge richtig decodiert, aber ich kann es nicht herausgefunden.

In Ihrer Antwort, können Sie davon ausgehen, dass mein Zeichenfolge hello oder etwas genannt wird.

War es hilfreich?

Lösung

"\ x85why hallo da!" ist nicht ein UTF-8-codierter String. Sie sollten versuchen, die Webseite Decodierung, bevor er es lxml. Überprüfen Sie, was codiert, verwendet es durch an den HTTP-Header suchen, wenn Sie die Seite holen vielleicht haben Sie das Problem dort finden.

Andere Tipps

Ist nicht so Syntax wie u"\x85why hello there!" Hilfe?

Sie können die folgenden Ressourcen von der offiziellen Python-Dokumentation hilfreich sein:

Da site.py Modifizierung keine ideale Lösung ist versuchen, dies zu Beginn des Programms:

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top