Ich werd noch irre...
Python3 ist ja toll, die Ordnung mit bytes und str ist auch eigentlich gut. Allerdings ist es lästig, dass ein str.decode nicht mehr existiert, da ja alles eh einheitlich UTF-8 ist. Gleiches mit bytes.encode - gibts nicht.
Ich habe in seltenen Fällen bei der Squeezebox das Problem, dass die Sender schon UTF-8 enkodierte "binary" senden. Wenn dann in einen "str" gewechselt wird, werden allerdings alle UTF-8 Escapes nochmals enkodiert. Heraus kommt ein "str":
Das "%C3%83%C2%B6" ist ein doppelt UTF-8 enkodiertes "ö". Leider kriege ich es dank Python3 nicht hin, den String nochmals zu "dekodieren". Auch Umwege über bytes (muss zwangsenkodiert werden...) und memoryview scheitern. Einzig bliebe ein wahnsinniger Umweg über list comprehensions und chr/ord.
http://forum.httrack.com/readmsg/18923/index.html beschreibt das Encoding-Problem recht genau.
Gibts noch andere Möglichkeiten?
Grüße
Robert
Python3 ist ja toll, die Ordnung mit bytes und str ist auch eigentlich gut. Allerdings ist es lästig, dass ein str.decode nicht mehr existiert, da ja alles eh einheitlich UTF-8 ist. Gleiches mit bytes.encode - gibts nicht.
Ich habe in seltenen Fällen bei der Squeezebox das Problem, dass die Sender schon UTF-8 enkodierte "binary" senden. Wenn dann in einen "str" gewechselt wird, werden allerdings alle UTF-8 Escapes nochmals enkodiert. Heraus kommt ein "str":
Code:
00%3A04%3A20%3A27%3Aca%3A1f playlist newsong Ihr%20h%C3%83%C2%B6rt%201LIVE
http://forum.httrack.com/readmsg/18923/index.html beschreibt das Encoding-Problem recht genau.
Gibts noch andere Möglichkeiten?
Grüße
Robert
Kommentar