ich hatte vor Monaten schon einmal das Thema und irgendwie habe ich es damals geschafft.
Jetzt befasse ich mich wieder (nach Monaten) mit Python und habe wieder das selbe Problem.
Meine damaligen Scripte sind nicht mehr vorhanden und jetzt muss ich mich von Grund auf neu damit beschäftigen. (Sonst hättei ch ja geschwind nachschauen können obwohl das Verständnis wieder ausgeblieben wäre).
Ich habe eine HTML-Seite in beautifulsoup und wenn ich ein Content herausgefiltert habe um ihn testweise auszugeben, bekomme ich statt 'München' ein 'M\u03ccnchen'.
In meinem Python-Header habe ich
Code: Alles auswählen
# -*- coding: UTF-8 -*-
Damit sollte ich also Unicode-Konform programmieren (das bedeutet das ja, oder liege ich da falsch?)
Ich weise einer Variable den Content aus BeautifulSoup zu und gebe diesen aus:
Code: Alles auswählen
stadt = soup.find("div", {"class": "irgendwas"}).find("a", {"class": "irgendwas"}).contents
print(stadt)
So, ich erwarte an dieser Stelle die Ausgabe München. Bekommen tu ich aber, wie oben gesagt, ein M\u03ccnchen.
Da ist natürlich in der 'Umsetzung' etwas falsch.
Aber jetzt die Frage:
Ist die Variable nun Unicode (dank der Header-Angabe) oder string?
Und muss ich jetzt den Unicode oder eben String encoden oder decoden?
Was ist das IST und wie komme ich zu dem SOLL?
Ist das IST das was im Header steht oder wie habe ich das zu verstehen?
Und was macht denn nun genau das decoden bzw. encoden?
Ich brauche ja nur eine Richtung vom aktuellen IST, richtig? (also unicode->latin-1 oder sowas in der Art)
Ich bin zwar überrascht daß ich wieder halbwegs python verstehe (nach so langer Zeit), aber damals habe ich das Ding mit den Codes nicht verstanden und jetzt erst recht nicht... leider...
Und ich merke das es etwas essentielleres ist als zuerst gedacht.
Kann mir hier mal jemand etwas unter die Arme greifen und mir das erklären? Auch anhand meines Beispieles wäre es echt toll.
Ich bedanke mich schon einmal im Voraus für eure Mühe.