在Python中解码macos文本

2024-06-16 12:10:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一些代码来解析RTF文档,并且需要处理它们可以使用的各种代码页。Python为所有必要的Windows代码页提供了解码器,但我不确定如何处理Mac代码页:

# 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

Python有任何内置的支持吗?如果没有纯Python平台,会不会有一个跨平台的Python处理呢?在


Tags: 代码文档shiftwindowsmac解码器hangulgreek
3条回答

似乎在Python stdlib中至少存在Mac Roman和Mac Turkish编码,它们的名称是macroman和Mac Turkish。请参见http://svn.python.org/projects/python/trunk/Lib/encodings/aliases.py,以获取最新Python中编码别名的完整列表。在

没有

但是,unicode.org提供了编解码器描述文件,可用于生成将解析这些编解码器的模块。python源代码发行版中包含一个脚本,它将转换这些文件:Python-x.x/Tools/unicode/gencodec.py。在

您可以使用python编解码器来处理这些名称为'mac roman'、'mac turkish'等的代码

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

你必须用他们的名字来称呼他们,你在问题中得到的这些数字不会出现在源文件中。有关详细信息,请查看$pylib/encodings/mac_*.py。在

相关问题 更多 >