[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
>