为什么unicodedata无法识别某些字符?

为什么unicodedata无法识别某些字符?,第1张

为什么unicodedata无法识别某些字符?

所述

unipredata.name()
查找依赖于第2列中的标准UnipreData.txt数据库(Python
2.7版使用Unipre 5.2.0)。

如果该名称

<
它开头,则将被忽略。所有控制代码,包括换行符,都在该类别中。第一列除了之外 没有 其他 名称
<control>

000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;;

第10列是 旧的 Unipre 1.0名称,根据标准,不应使用。换句话说,除了通用数据库之外,

n
没有name
<control>
Python数据库会忽略它(因为它不是唯一的)。

Python 3.3增加了对NameAliases.txt的支持,它使您可以按别名查找名称。因此

lookup('LINEFEED')
lookup('newline')
lookup('eol')
等等,全部参考
n
。但是,该
unipredata.name()
方法不支持别名,也不支持别名(它将选择哪个?):

*添加了对Unipre名称别名和命名序列的支持。现在

unipredata.lookup()
和两者都
'N{...}'
解析名称别名,并且也
unipredata.lookup()
解析命名序列。

TL; DR:

LINE FEED
不是的正式名称
n
,而是它的别名。Python 3.3及更高版本可让您按别名查找字符。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5673433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存