零宽度/不可见字符强制自定义排序

时间:2012-09-24 17:43:12

标签: utf-8

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

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

1 作为空格处理:未被trim和类似的常用实现删除。使用gmail示例,U+202F(缩小的不间断空格)将被修剪。

编辑:只有一个不可见的字符就足够了。毕竟,它们可能会被重复而不会对视觉表示产生影响(假设下面的代码是ascii文本):

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

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

编辑:我浏览了all UTF-8 characters,看似零宽度/不可见,没有按要求工作。 U+0 - U+20DEL,控制字符,甚至是符号,例如U + 034F:COMBINING GRAPHEME JOINER (alias CGJ),都被正确对待,因此无法用于我的目的。我一直在寻找。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

U+200B ZERO WIDTH SPACE 
U+200C ZERO WIDTH NON-JOINER  
U+200D ZERO WIDTH JOINER