Seite 1 von 1

Unicode als Standard schon in Python 2.5

Verfasst: Dienstag 18. März 2008, 00:14
von Pythonierer
Hallo,

gibt es einen Patch oder irgendetwas dergleichen, welches Unicode bereits in Python 2.5 zum Standard macht? Denn ASCII nervt mich langsam und in Python 3k soll ja Unicode Standard sein.

Danke im Voraus für eure Bemühungen und noch einen schönen Abend,

Pythonierer!

Verfasst: Dienstag 18. März 2008, 04:59
von EnTeQuAk
DU kannst doch Strings mit einem `u` vor der definition als Unicode definieren?

Code: Alles auswählen

my_string = u'some content'
Wenn du alle Eingaben via Dateien etc. in Unicode umwandelst, brauchst du dir nahezu keine Gedanken mehr um die internen zu machen, nur beim ausgeben in Dateien usw. musst du nochmal encodieren.
Oder was gefällt dir daran nicht?


Btw, wird das nicht mit einem patch getan sein. Die Umstellung befasst ja auch sämtliche libraries die hier und da ein wenig umgestellt werden mussten (denke ich).

MfG EnTeQuAk

Re: Unicode als Standard schon in Python 2.5

Verfasst: Dienstag 18. März 2008, 10:41
von Leonidas
Pythonierer hat geschrieben:gibt es einen Patch oder irgendetwas dergleichen, welches Unicode bereits in Python 2.5 zum Standard macht? Denn ASCII nervt mich langsam und in Python 3k soll ja Unicode Standard sein.
Nein. Die Änderungen in Python 3.0 zu dem Thema sind recht umfassend, etwa die Abschaffung des String-Datentyps, der neue Bytes-Datentyp. Ich glaube nicht, dass die Stdlib von Python 2.5 sich komplett mit Unicode verträgt, also hast du da schon ein Problem. Andere Bibliotheken werden mit Unicode noch weniger zurechtkommen.

Unicode ist ab 3.0 Standard und das ist gut so. In 2.x nicht und das hat auch einen guten Grund.

Verfasst: Dienstag 18. März 2008, 21:03
von birkenfeld
Es gibt den undokumentierten Switch ``-U``, der alle Stringliterale zu Unicode werden lässt. Das, und ein __builtin__.str = unicode, sollte schonmal recht weit in die Richtung gehen.

Allerdings glaube ich wie Leonidas, dass das schon in der stdlib einige Probleme geben wird.