[Python-de] lokalisierte String-Methoden?

Diez B. Roggisch deets at web.de
Die Nov 22 15:34:12 CET 2005


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")

Dann klappt's.u

Diez