2009-10-20 18 views
6

Sto scrivendo del codice per analizzare i documenti RTF e devo gestire le varie codepage che possono usare. Python è dotato di decoder per tutte le tabelle codici di Windows necessarie, ma non sono sicuro di come gestire i Mac:Decodifica del testo Mac OS 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 

fa Python avere alcun supporto integrato per questi? In caso contrario, esiste una libreria cross-platform pure-Python in grado di gestirli?

risposta

8

È possibile utilizzare i codec Python per questi che sono noti con i loro nomi 'mac-roman', 'mac-turco', ecc

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

dovrete fare riferimento a loro con i loro nomi , questi numeri che hai nella tua domanda non compaiono nei file sorgente. Per ulteriori informazioni, consultare $pylib/encodings/mac_*.py.

+2

Inoltre, tali codifiche Mac risalgono ai classici giorni MacOS e sono ampiamente obsolete in Mac OS X. –

1

No.

Tuttavia, unicode.org fornisce codec file di descrizione che è possibile utilizzare per generare i moduli che analizzerà questi codec. Incluso con le distribuzioni di origine Python è uno script che convertirà questi file: Python-x.x/Tools/unicode/gencodec.py.