如何获取任意编码的所有字符?

2024-04-18 15:37:40 发布

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

如果我想知道哪些字母是ascii字符集的一部分,我可以简单地问python,这很好:

>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

我搜索了一段时间,但找不到返回任意编码字符集的泛型函数。像这样:

^{pr2}$

还是我错过了?一个检查字符串是否只包含某些编码字符的函数也可以工作,但我希望直观地将所有有效字符作为一个列表。在


Tags: 函数字符串import编码string字母ascii字符
1条回答
网友
1楼 · 发布于 2024-04-18 15:37:40

据我所知,在标准库中没有这样的函数。在

在缺乏更好的想法的情况下,这里有一个丑陋的黑客尝试用指定的编码对utf8范围内的每个字符进行编码,并删除那些无法编码的字符:

def get_charset(encoding):
    all_chars = ''.join(chr(x) for x in range(0x110000))
    return all_chars.encode(encoding, errors='ignore').decode(encoding)

输出:

^{pr2}$

速度测试:

In [2]: %timeit get_charset('latin1')
306 ms ± 8.34 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

相关问题 更多 >