如果您查看Unicode Table,表格中还有几个空格。有一个unicode值,但没有字符,例如。 U + 0BA5。为什么这些空位?
其次,我如何检查unicode值是否是这些空格中的一个?我的代码使用unichr(int)确定一个unicode值,它返回一个有效的unicode值,但我不知道如何检查这个unicode值是否只是一个空框。
答案 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
,表示未分配。