2009-10-20 11 views
6

Piszę kod do parsowania dokumentów RTF i potrzebuję obsługi różnych stron kodowych, z których mogą korzystać. Python jest wyposażony w dekodery dla wszystkich niezbędnych stron kodowych Windows, ale nie jestem pewien, jak obsługiwać te Mac:Dekodowanie tekstu w systemie Mac OS w języku 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 

Czy Python posiada wbudowanych wsparcie dla nich? Jeśli nie, czy istnieje wieloplatformowa biblioteka z czystym Pythonem, która poradzi sobie z nimi?

Odpowiedz

8

Można użyć kodeków Pythona do tych, które są znane pod ich nazwami Mac-Roman ",„mac-turecki”itp

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

Będziesz musiał odnosić się do nich po imieniu te liczby, które masz w pytaniu, nie pojawiają się w plikach źródłowych. Aby uzyskać więcej informacji, spójrz na $pylib/encodings/mac_*.py.

+2

Również te kodowania Mac sięgają klasycznych dni MacOS i są w dużym stopniu przestarzałe w Mac OS X. –

1

nr

Jednak unicode.org zapewnia kodeków plików opisu, który można wykorzystać do generowania modułów, które będzie analizować te kodeki. W kompilacji z pythonowymi źródłami dystrybucji znajduje się skrypt, który skonwertuje te pliki: Python-x.x/Tools/unicode/gencodec.py.

Powiązane problemy