ich wollte mit BeautifulSoup HTML einlesen und kann mir dabei folgendes Verhalten nicht erklären:
Interpretersitzung im pastebin
Warum kriege ich für
Code: Alles auswählen
>>> t
Code: Alles auswählen
print t.__repr__()
Code: Alles auswählen
>>> t
Code: Alles auswählen
print t.__repr__()
Interessant. Wie erkennt BeautifullSoup denn, aus welchem Endocing es den gegebenen Strinf decosieren soll? "Rät" es da irgend wie intelligent? Ich dachte bisher so eine wirklich gute Möglichkeite gäbe es da nicht, auf das benutze Endocing zu schließen?BlackJack hat geschrieben: @Hyperion: `BeautifulSoup` liefert schon Unicode, das ist ja gerade das Problem hier.
Doku hat geschrieben: Beautiful Soup uses a class called UnicodeDammit to detect the encodings of documents you give it and convert them to Unicode, no matter what. ...
Code: Alles auswählen
In [248]: import sys
In [249]: sys.stdout.encoding
Out[249]: 'UTF-8'
Wenn man es nicht aus Headern oder Meta-Tags bekommt, dann rät man eben. So wie Chardet es auch macht.Hyperion hat geschrieben:Wie erkennt BeautifullSoup denn, aus welchem Endocing es den gegebenen Strinf decosieren soll? "Rät" es da irgend wie intelligent? Ich dachte bisher so eine wirklich gute Möglichkeite gäbe es da nicht, auf das benutze Endocing zu schließen?
BlackJack hat geschrieben:@Panke: Das Problem ist halt, dass der Interpeter nicht festellt oder festellen kann, welche Kodierung `Konsole` erwartet. Was bei mir übrigens einwandfrei funktioniert.
Code: Alles auswählen
In [8]: sys.stdout.encoding
Out[8]: 'UTF-8'