2009-10-20 10 views
6

Ich schreibe etwas Code zum Parsen von RTF-Dokumenten und muss mit den verschiedenen Codepages umgehen, die sie verwenden können. Python kommt mit Decodern für alle notwendigen Windows-Codepages, aber ich bin nicht sicher, wie die Mac diejenigen zu behandeln:Decodierung von Mac OS-Text in Python

# 77: "10000", # Mac Roman 
# 78: "10001", # Mac Shift Jis 
# 79: "10003", # Mac Hangul 
# 80: "10008", # Mac GB2312 
# 81: "10002", # Mac Big5 
# 83: "10005", # Mac Hebrew 
# 84: "10004", # Mac Arabic 
# 85: "10006", # Mac Greek 
# 86: "10081", # Mac Turkish 
# 87: "10021", # Mac Thai 
# 88: "10029", # Mac East Europe 
# 89: "10007", # Mac Russian 

Does Python haben jede integrierte Unterstützung für diese? Wenn nicht, gibt es eine plattformübergreifende reine Python-Bibliothek, mit der sie umgehen können?

Antwort

8

Sie können die Python-Codecs für diese verwenden, die durch ihre Namen ‚mac-roman‘, ‚mac-türkisch‘ usw.

>>> 'foo'.decode('mac-turkish') 
u'foo' 

bekannt sind, müssen Sie werden durch ihre Namen auf sie verweisen , diese Zahlen, die Sie in Ihrer Frage haben, erscheinen nicht in den Quelldateien. Weitere Informationen finden Sie unter $pylib/encodings/mac_*.py.

+2

Auch diese Mac-Kodierungen stammen aus klassischen MacOS-Tagen und sind in Mac OS X weitgehend veraltet. –

1

Nr

jedoch unicode.org Codec Beschreibungsdateien, mit denen Sie Module zu erzeugen, verwenden können, die diese Codecs analysieren wird. In Python-Quelldistributionen ist ein Skript enthalten, das diese Dateien konvertiert: Python-x.x/Tools/unicode/gencodec.py.