为什么Unicode字符表中有空格,如何检查unicode值是否为其中之一?

时间:2016-09-24 19:27:44

标签: python unicode

如果您查看Unicode Table,表格中还有几个空格。有一个unicode值,但没有字符,例如。 U + 0BA5。为什么这些空位?

其次,我如何检查unicode值是否是这些空格中的一个?我的代码使用unichr(int)确定一个unicode值,它返回一个有效的unicode值,但我不知道如何检查这个unicode值是否只是一个空框。

2 个答案:

答案 0 :(得分:1)

并非所有Unicode代码点都已收到作业;这可能有多种原因,包括历史,实践,政治等等。

您可以使用unicodedata.name() function来测试给定的代码点是否具有Unicode 名称;当代码点没有为其分配名称时,它会引发ValueError

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

答案 1 :(得分:0)

接受的答案仅是巧合。

有些代码点没有名称,但已分配。例如,在5.2.0中,unicodedata.name(u'\u0000')错误。但是它被分配了。由于NUL字符具有Unicode类别Cc。

要测试未分配的代码点,请测试类别是否为'Cn'

unicodedata.category(u'\u0BA5') == 'Cn'

计算结果为True,表示未分配。