8

UTF-8 中存在哪些不被视为空格的零宽度字符1?我对那些不在主流浏览器上呈现的字形特别感兴趣:永远不应该显示未找到的矩形。

有许多网络服务按字母顺序排列用户输入的数据(例如 Gmail 的标签)。我想使用那些不可见的字符来强制执行自定义排序。

1 视为空格:不被常用的实现trim和类似的删除。在 gmail 示例中,U+202F(Narrow no-break space)被修剪。

编辑:只有一个隐形字符就足够了。毕竟,它们可以重复而不影响视觉表示(假设下面是较低的代码 ascii 文本):

[char]Z on first position
[char][char]B on second position
[char][char][char]C on third position

不幸的是,我能想到的所有字符要么被立即修剪,要么被排序函数忽略。

编辑:我浏览了所有似乎零宽度/不可见且没有按要求工作的UTF-8 字符。U+0 - U+20, DEL, 控制字符,甚至像 U+034F: 这样的符号COMBINING GRAPHEME JOINER (alias CGJ),都被正确处理,因此无法用于我的目的。不过我一直在寻找。

4

1 回答 1

1

您可以尝试以下方法:

U+200B ZERO WIDTH SPACE 
U+200C ZERO WIDTH NON-JOINER  
U+200D ZERO WIDTH JOINER
于 2012-09-24T17:57:52.533 回答