2009-10-20 10 views
6

Escribo código para analizar documentos RTF y necesito manejar las distintas páginas de códigos que pueden usar. Python viene con decodificadores para todas las páginas de códigos de Windows necesarios, pero no estoy seguro de cómo manejar los Mac:Decodificación de texto de Mac OS en 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 

¿El Python tener ningún soporte integrado para estos? Si no, ¿hay una biblioteca de Python pura multiplataforma que los maneje?

Respuesta

8

Puede utilizar los códecs de pitón para éstos que son conocidos por sus nombres 'mac-roman', 'mac-turco', etc.

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

Vas a tener que referirse a ellos por sus nombres , estas cifras que tienes en tu pregunta no aparecen en los archivos fuente. Para obtener más información, consulte $pylib/encodings/mac_*.py.

+2

Además, esas codificaciones de Mac se remontan a los días clásicos de MacOS y son en gran parte obsoletas en Mac OS X. –

1

Sin embargo, unicode.org proporciona archivos de descripción de codec que se pueden utilizar para generar módulos que analizará los códecs. Se incluye con las distribuciones fuente de python una secuencia de comandos que convertirá estos archivos: Python-x.x/Tools/unicode/gencodec.py.