2009-10-20 7 views
6

J'écris du code pour analyser des documents RTF et j'ai besoin de gérer les différentes pages de code qu'ils peuvent utiliser. Python est livré avec des décodeurs pour tous les codepages Windows nécessaires, mais je ne suis pas sûr de savoir comment gérer les versions Mac:Décodage de texte 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 

Est-ce que Python a une prise en charge intégrée pour ces? Si ce n'est pas le cas, existe-t-il une bibliothèque pure-Python multiplate-forme qui les gérera?

Répondre

8

Vous pouvez utiliser les codecs python pour ceux-ci qui sont connus par mac-roman 'leur nom, «mac-turc, etc.

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

Vous devez vous référer à eux par leur nom , ces chiffres que vous avez dans votre question n'apparaissent pas dans les fichiers source. Pour plus d'informations, regardez $pylib/encodings/mac_*.py.

+2

En outre, ces codages Mac remontent aux jours MacOS classiques et sont en grande partie obsolètes sous Mac OS X. –

1

n °

Cependant, unicode.org fournit des fichiers de description codec que vous pouvez utiliser pour générer des modules qui analysera ces codecs. Inclus avec les distributions sources python est un script qui va convertir ces fichiers: Python-x.x/Tools/unicode/gencodec.py.