Ich bin ein Python-Programm zu schreiben BeautifulSoup4
verwenden, und wenn ich ein HTML-Element zu holen, die eine stilisierte Anführungszeichen u'\u2019'
enthält Ich bin in der Lage, wie dies aus dem ganzen Elemente drucken:Python: Warum kann ich ein Unicode-Zeichen auf einer Zeile Code drucken, aber das gleiche Unicode-Zeichen verursacht einen Fehler, wenn ich versuche, es später zu drucken?
Code:
print "Using song: %s" % (song_link)
Ergebnis:
Using song: <a href="http://www.songlyrics.com/anna-kendrick/cups-pitch-perfects-when-im-gone-lyrics/" title="Cups (Pitch Perfect’s “When I’m Gone”) Lyrics Anna Kendrick">Cups (Pitch Perfect’s “When I’m Gone”)</a>
Aber dann, wenn ich versuche auszudrucken nur der Text dieses Elements, es scheitert:
Code:
print "Song text: %s" % (song_link.text)
Ergebnis:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 30: ordinal not in range(128)
Warum passiert das? Warum funktioniert das einen Moment und dann nicht der nächste? Es ist reproduzierbar.
Nur .encode ('utf8') auf der Zeichenfolge vor dem Drucken aufrufen, scheint es behoben zu haben - danke! – Dasmowenator