零宽度 space 与零宽度非连接器
Zero-width space vs zero-width non-joiner
zero-width space (U+200B) and zero-width non-joiner(U+200C)从实用的角度有什么区别?
我已经看过维基百科的文章,但我不明白这些字符是否可以互换。
我认为它们完全可以互换,但后来我不明白为什么我们在 Unicode 集中有两个而不是一个。
零宽度非连接器几乎不存在。它的唯一目的是将事物一分为二。例如,123 零宽度非连接器 456 是两个数字,中间没有任何内容。
零宽度 space 是一个 space 字符,只是一个非常非常窄的字符。例如 123 zero-width-space 456 是两个数字,中间有一个 space 字符。
零宽度非连接符 (ZWNJ) 仅中断 ligatures. These are hard to notice in the latin alphabet but are most frequent in serif fonts 显示一些特定的小写字母组合。有一些字母表,例如阿拉伯语的 abjad,非常突出地使用了连字。
零宽度 space (ZWSP) 可以完成 ZWNJ 所做的一切,但它也为换行创造了机会。非常适合显示文件路径和长 URL,但要注意它可能会搞砸复制粘贴。
顺便说一句,我在Python 3.8和Javascript 1.5中测试了正则表达式匹配,其中none匹配\s
。 Unicode 将这些字符视为格式化字符(类似于方向标记等),而不是 space/punctuation。同一 Unicode 块中还有其他代码点(例如 Thin Space、U+2009)被 Unicode 视为 space 并匹配 \s
.
zero-width space (U+200B) and zero-width non-joiner(U+200C)从实用的角度有什么区别?
我已经看过维基百科的文章,但我不明白这些字符是否可以互换。
我认为它们完全可以互换,但后来我不明白为什么我们在 Unicode 集中有两个而不是一个。
零宽度非连接器几乎不存在。它的唯一目的是将事物一分为二。例如,123 零宽度非连接器 456 是两个数字,中间没有任何内容。
零宽度 space 是一个 space 字符,只是一个非常非常窄的字符。例如 123 zero-width-space 456 是两个数字,中间有一个 space 字符。
零宽度非连接符 (ZWNJ) 仅中断 ligatures. These are hard to notice in the latin alphabet but are most frequent in serif fonts 显示一些特定的小写字母组合。有一些字母表,例如阿拉伯语的 abjad,非常突出地使用了连字。
零宽度 space (ZWSP) 可以完成 ZWNJ 所做的一切,但它也为换行创造了机会。非常适合显示文件路径和长 URL,但要注意它可能会搞砸复制粘贴。
顺便说一句,我在Python 3.8和Javascript 1.5中测试了正则表达式匹配,其中none匹配\s
。 Unicode 将这些字符视为格式化字符(类似于方向标记等),而不是 space/punctuation。同一 Unicode 块中还有其他代码点(例如 Thin Space、U+2009)被 Unicode 视为 space 并匹配 \s
.