Umlaute / Unicode in python2.2 MacOS

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
macwien

Dienstag 20. August 2002, 04:34

Umlaute / Unicode in python2.2 MacOS 10.1.5
In Terminal und in XDarwin (wmaker) laeuft das.
Aber nirgends kann ich Unicode (mit Umlauten,ss) eingeben.
Auch bei script aus dem Editor (Alpha7 von OS9, und BBEditLite6 for OSX)
wird nur ein Fehler angezeigt

xu=u"äöü" (das ist "ae,oe.ue")
print xu
-----
Traceback (most recent call last):
File "testpython.py", line 8, in ?
print xu
UnicodeError: ASCII encoding error: ordinal not in range(128)
Gast

Mittwoch 21. August 2002, 21:00

Dieser Fehler existiert auch auf anderen Betriebssystemen.(Habe das Beispiel auf win2000 u. FreeBSD auf einem i386 Rechner probiert) Scheinbar speichert Python Strings nur in 128 bit Asci ab. Folgender Workaround funktionierte auf meinem Rechner:

Python 2.2.1 (#1, Jun 7 2002, 04:13:14)
[GCC 2.95.3 20010315 (release) [FreeBSD]] on freebsd4
Type "help", "copyright", "credits" or "license" for more information.
>>> xu = u"äöü"
>>> print xu

Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeError: ASCII encoding error: ordinal not in range(128)
>>> xu =xu.encode("latin-1")
>>> print xu
äöü
>>>

Jochim
macwien

Freitag 23. August 2002, 01:04

Danke für den Hinweis. Aber:
So etwas ähnliches habe ich schon in den FAQs gelesen.
Leider geht das im MacOSX Terminal nicht (auch nicht im XDarwin /=X-Windows/ Terminal).

Dort kann ich die Zeile
xu="äöü"
schon gar nicht eingeben (Streik beim ersten nicht ASCII).

In einem Script kann ich das schreiben.
x="abcd"
print x
xu=u"äöü"
xu =xu.encode("latin-1")
print xu

Der einzige Unterschied des encodings ist:
es kommt zu keinem Traceback, sondern die Zeichen werden als unbekannt ausgegeben:


psint% python scriptpython.py
abcd
???
%

Es gibt am Mac zwei eigene Lösungen mit einer IDE, die aber getrennt von meiner Lösunge (von fink.sourceforge.net) zu implementieren wären.
http://www.cwi.nl/~jack/macpython.html
Dort geht das vermutlich.

Ich zögere noch noch ein zweites python zu installieren (meines scheint für andere Aufgaben von Fink-Installationen an dieser Stelle notwendig zu sein).

Ich arbeite zwar mit Englischem System, aber das (Unix)-Terminal läßt sich auch sonst nicht auf Latin-1 ein, soweit ich das beurteilen kann.

Es geht aber
python scriptfile.py > neufile.txt

das neufile kann ich in einem Editor ansehen und es zeigt die (Latin-1 encoded) nicht-ASCII Zeichen.

Immerhin eine Lösung, wen auch nicht interaktiv. Ich vermute man könnte einen Editor umfunktionieren um das Interaktiv zu machen (vielleicht emacs, wenn der Umlaute kann. Macs Alpha ist noch nicht auf MacOSX erhätlich).

MfG

Peter

http://fink.sourceforge.net/pdb/package.php/python
Antworten