我如何知道Python的unicode函数识别的所有支持的编码

Jim*_*hen 4 python character-encoding python-unicode

Python 有一个unicode内置函数可以将字节流转换为 unicode 字符串。

在此输入图像描述

我只是希望我可以查询我的系统上所有可用的编码。但如何。

这个问题的原因是:有人使用 MAC OS X 向我发送了一封内容编码为“iso-2022-cn”的电子邮件,我发现 Windows 7 上的 Python 2.7 无法识别该编码。

>>> print unicode(bs2022, 'iso-2022-cn')

Traceback (most recent call last):
  File "<pyshell#97>", line 1, in <module>
    print unicode(bs2022, 'iso-2022-cn')
LookupError: unknown encoding: iso-2022-cn
Run Code Online (Sandbox Code Playgroud)

所以我想通过查看Python可以支持的所有编码来找出Python是否对“iso-2022-cn”使用了不同的名称。

Vic*_*res 5

这是python 2.7 的列表

你也可以这样做

from encodings.aliases import aliases
>>> def find(q):
        q = encodings.normalize_encoding(q)
...     return [(k,v)for k,v in aliases.iteritems() if q in v or q in k]

>>>> find('100')
[('ksx1001', 'euc_kr'), ('iso_ir_100', 'latin_1'), ('ks_x_1001', 'euc_kr')]
Run Code Online (Sandbox Code Playgroud)