gpt4 book ai didi

python - 识别无法打印的 unicode 字符

转载 作者:太空狗 更新时间:2023-10-30 02:59:32 25 4
gpt4 key购买 nike

我需要能够确定(或预测)Unicode 字符何时不可打印。例如,如果我在默认设置下打印这个 unicode 字符,它打印得很好:

>>> print(u'\ua62b')

但是如果我打印另一个 unicode 字符,它会打印成一个愚蠢、奇怪的方 block :

>>> print(u'\ua62c')

我真的需要能够在打印字符之前确定它是否会像这样显示为一个丑陋的正方形(或有时显示为匿名空白)。是什么原因造成的,我该如何预测?

最佳答案

虽然判断运行脚本的终端(或终端使用的字体)是否能够正确呈现给定字符不是很容易,但您至少可以检查该字符是否确实具有表示形式。

字符 \ua62b 被定义为 VAI SYLLABLE NDOLE DO,而字符 \ua62c 没有定义,因此它可能是呈现为正方形或其他通用符号。

检查字符是否已定义的一种方法是使用 unicodedata module :

>>> import unicodedata
>>> unicodedata.name(u"\ua62b")
'VAI SYLLABLE NDOLE DO'
>>> unicodedata.name(u"\ua62c")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: no such name

正如您在上面看到的,\ua62c 字符引发了 ValueError,因为它未定义。

另一种方法是检查字符的类别。如果是 Cn 则字符未分配:

>>> import unicodedata
>>> unicodedata.category(u"\ua62b")
'Lo'
>>> unicodedata.category(u"\ua62c")
'Cn'

关于python - 识别无法打印的 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31396061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com