[Python-de] lokalisierte String-Methoden?
Franz Kelnreiter
kelnreiter at mozarteum.at
Die Nov 22 17:14:46 CET 2005
Diez B. Roggisch schrieb:
> On Tuesday 22 November 2005 12:41, Franz Kelnreiter wrote:
>
>>Hallo Allerseits,
>>ich bekomme bei dem Beispiel überhaupt nur Nonsens und glaube doch, dass
>>es mit den locals und dem "consolefont" im engeren Sinne zu tun haben
>>muss.
>>
>>
>>>>>print s
>>
>>führt in WinXP habe bei mir zu folgendem Error:
>>..
>> File "C:\Python23\lib\encodings\cp850.py", line 18, in encode
>> return codecs.charmap_encode(input,errors,encoding_map)
>>UnicodeEncodeError: 'charmap' codec cant encode character u'\x94' in
>>position 0: character maps to <undefined>
>>
>>In Linux 2.6.13-gentoo-r5 fällt das Ganze ein wenig schweigsamer aus
>>und lautet bloß:
>>UnicodeEncodeError: 'ascii' codec can't encode characters in position
>>0-1: ordinal not in range(128)
>>
>>das ist aber zugegeeben sei ich vor kurzen neu aufgesetzt habe ein
>>xorg.conf Problem, das mir keine de Lokalen in den diversen
>>Konsole-Shells anzeigen will, wohingegen bei anderen XApps hier kein
>>Problem besteht: siehe äÖö߀
>
>
> Das ist von Hennings Problem unberuehrt und zeigt nur das "uebliche"
> Fehlerverhalten wenn man probiert unicode-Objekte zu strings zu wandeln, ohne
> dabei explizit ein encoding vorzugeben. Dann verwendet er naemlich das
> default-encoding (das unter XP cp850 zu sein scheint, bei mir und dir unter
> linux aber ascii) - mit dem Ergebnis, das es nicht klappt.
>
> Statt
>
> print s
>
> mach mal
>
> print s.encode("latin1")
>
> oder
>
> print s.encode("utf-8")
Danke für die Klarstellung. Das war dann von Gerold und Henning falsch wiedergegeben:
Statt zB. print s.upper() sollte da natürlich print s.encode("utf-8").upper()
gestanden haben, dann hätt ichs auch begriffen...
--franz
>
> Dann klappt's.u
>
> Diez
>