Liste und List Comprehension unzuverlässig?
@Sophus: natürlich mußt Du wissen, wo Du Bytes und wo Du mit Zeichen arbeiten mußt. Und dazwischen wird de- und encodiert. Das "also doch" zeigt mir, daß Du das Thema Kodierung noch nicht ganz verstanden hast und daß es nicht das Problem sondern die Lösung ist. Du mußt Dir einfach immer klar machen, wann eine Variable natürlicherweise Bytes und wann Zeichen enthält.
Zum Glück wird in Python die Problematik relativ früh an die Programmierer herangetragen und ist schön abstrahiert (ich sprech mal nur für Python 2, mit Python 3 hab ich kaum Erfahrung). Von PHP, C, C++ bis Java kenne ich wüste Transkodierorgien, wo bei Nachfrage klar wurde, dass die Idee hinter Zeichenkodierungen nicht verstanden war.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
@jerch: Naja, ich denke in Python gibt es auch verdammt viele Entwickler, die sich damit überhaupt nicht auskennen! Die klassischen Java Anwendungen sind eben auch selten CLI-Tools, bei denen man mit Plain Text Dateien umgehen muss und innerhalb des J2EE Ökosystems findest Du eben wenig, was Wissen über Encoding verlangt. Bei den als sogenannte Script-Sprachen wahrgenommenen Sprachen spielt Dateihandling und Benutzereingaben auf Terminalebene eine größere Rolle und deswegen stößt man oft auf Probleme.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Wie lösen eigentlich Ruby und Perl die Zeichendarstellung? Gibts in Perl als awk(-ward) Sprache einen standardisierten "dekodierten" Unicodetypen ala Python für die interne Repräsentation oder kodiert man da in ein Unicode-Encoding seiner Wahl?