拉丁大写字母I(U+;0049)和罗马数字1(U+;2160)是否具有unicode兼容等效性?
Unicode定义了两种等价:规范等价和兼容性等价。Unicode技术附件15中兼容性等效的示例为上标1(U+00B9)和数字1(U+0031)。它没有讨论视觉上难以区分的角色 我很好奇,在标准下,视觉上无法区分的字符是否具有兼容性等价性 谢谢。是的。查看:拉丁大写字母I(U+;0049)和罗马数字1(U+;2160)是否具有unicode兼容等效性?,unicode,Unicode,Unicode定义了两种等价:规范等价和兼容性等价。Unicode技术附件15中兼容性等效的示例为上标1(U+00B9)和数字1(U+0031)。它没有讨论视觉上难以区分的角色 我很好奇,在标准下,视觉上无法区分的字符是否具有兼容性等价性 谢谢。是的。查看: 2160;罗马数字一;Nl;0;L0049;;;1.N2170; 由@dan04给出的答案是明确问题的正确答案,但间接问题“视觉上无法区分的字符是否具有兼容性等价性”的答案更为复杂 通常,规范上等价的字符或字符序列应该看起来相似。粗略地说,
2160;罗马数字一;Nl;0;L0049;;;1.N2170;
由@dan04给出的答案是明确问题的正确答案,但间接问题“视觉上无法区分的字符是否具有兼容性等价性”的答案更为复杂
通常,规范上等价的字符或字符序列应该看起来相似。粗略地说,它们是与编码字符具有相同直觉特征的差异表示。然而,这取决于几个实际考虑因素,并且渲染实际上可能不同
另一方面,即使字符的渲染(字形)在每个已知字体中都是相同的,字符在视觉上也无法区分。例如,任何包含大写拉丁字母A、大写希腊字母alpha和大写西里尔字母A的普通字体都具有相同的字形,但它们仍然是完全不同的字符,它们之间没有等价映射
兼容性等效字符在表示上可能会有所不同,而且通常会有所不同,部分原因是它们的差异通常是风格上的。但它们不必有所不同。ᴇᴅɪᴛ:添加了正确的原始问题在底部寻找的内容。这真的很酷
你关于ʀ的问题的答案是什么ᴏᴍᴀɴ ɴᴜᴍᴇʀᴀʟ ᴏɴᴇ ʟᴀᴛɪɴ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀɪ是是。这里有一个快速检查方法:
$ perl -Mcharnames=:full -MUnicode::Normalize -le 'print
NFKD "\N{ROMAN NUMERAL ONE}" eq NFKD "\N{LATIN CAPITAL LETTER I}"'
1
但是,对于您关于视觉上无法区分的字符是否具有兼容性等价性的问题,答案肯定是否强>
比如说,,ᴄʜᴇʀᴏᴋᴇᴇ ʟᴇᴛᴛᴇʀ ɢᴏ (Ꭺ) 看起来像ʟᴀᴛɪɴ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ᴀ (A) ,但肯定不是NFKD等效。与ɢʀ类似ᴇᴇᴋ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ᴀʟᴘʜᴀ (Α)及ᴄʏʀɪʟʟɪᴄ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ᴀ (А)不等同于NFKD。实际上有无数(我无法计算它们:)这样的问题。NFKD等同于ʟ的唯一代码点ᴀᴛɪɴ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ᴀ, 例如:
U+00041 A GC=Lu SC=拉丁文大写字母A
U+01D2C ᴬ GC=Lm SC=拉丁文修饰字母大写A
U+024B6 Ⓐ GC=So SC=常用圆圈拉丁大写字母A
U+0FF21 A GC=Lu SC=拉丁文全宽拉丁文大写字母A
U+1D400 “视觉上无法区分”是一种主观属性。无论第一个刻在石头上的罗马人是什么,看起来都不像赫尔维蒂卡1。
$ perl -Mcharnames=:full -MUnicode::Normalize -le 'print
NFKD "\N{ROMAN NUMERAL ONE}" eq NFKD "\N{LATIN CAPITAL LETTER I}"'
1