Frage

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 38: ordinal not in range(128)

Ich bin eine Website herunterzuladen und dann seinen Inhalt Drucken ... einfach. Muss ich es irgendwie kodieren?

War es hilfreich?

Lösung

Versuchen utf-8 für Start. Website haben Sie vielleicht andere charset als ANSI herunterladen und diese zusätzlichen Zeichen können nicht auf der Konsole gedruckt werden.

So in Ort, wo man print text tun, anstatt sie print text.encode('utf-8').

Andere Tipps

Vergewissern Sie sich, Putty konfiguriert UTF-8 kodierten Daten zu übernehmen.

printing Sachen auf die Standardausgabe kann problematisch sein, weil Python oft nicht weiß, welchen Charakter das System codiert, verwendet. Angesichts dieser Python 2 übernimmt die konservativste Wahl, ASCII USA. Also, wenn Sie versuchen, eine Zeichenfolge zu drucken, die Zeichen enthält, die nicht in ASCII ist, wie die U + 2019 Smart-Zitat , es gibt Ihnen diesen Fehler.

In Python 3 die Standard-charset Vermutung für sys.stdout.encoding ist UTF-8. Wenn Sie sicher sind, dass die Standardausgabe (. Dh PuTTY in Ihrem Fall) sollte UTF-8, nehmen dann ja Sie können es kodieren explizit:

print content.encode('UTF-8')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top