我有一个问题,想确定系统中的字体是否具有特定的Unicode字符。
>>> chr(9966)
'⛮'
>>> chr(9955)
'⛣'
>>> chr(9955) == chr(9966)
False
基本上,我想做的是检查值是否为⛣
。有没有办法在Python中找出值是否为⛣
?
编辑:我现在明白Unicode字符本质上并不是定义或未定义的。但是,有没有一种方法可以检查一个字符是否存在于某个字体中?我使用的是OS X。
我有一个问题,想确定系统中的字体是否具有特定的Unicode字符。
>>> chr(9966)
'⛮'
>>> chr(9955)
'⛣'
>>> chr(9955) == chr(9966)
False
基本上,我想做的是检查值是否为⛣
。有没有办法在Python中找出值是否为⛣
?
编辑:我现在明白Unicode字符本质上并不是定义或未定义的。但是,有没有一种方法可以检查一个字符是否存在于某个字体中?我使用的是OS X。
unidecode
,任何未知字符似乎都会被返回为[?]
:from unidecode import unidecode
>>> unidecode(chr(9966))
'[?]'
>>> unidecode(chr(9955))
'[?]'
>>> unidecode(chr(9955)) == unidecode(chr(9966))
True
这种方法依赖于外观来获取ASCII等效字符。一些其他的Unicode字符可能会被误认为是接近[?]
,因此可能会得到一些错误的结果。
□
)。如果所请求的字符在用于显示的字体中不存在,则会看到默认字符。通常情况下,Python不知道您的系统使用的是什么字体,因此它不能以某种方式“更改”字符为方框(您似乎认为它可以),也不能告诉您该字符是否可用(除非您告诉它使用哪个字体)。 - Jongware