如何使用IBM ICU collat​​or处理特殊字符?

时间:2011-11-29 01:12:56

标签: icu

我们正在使用IBM ICU Collat​​or来排序我们的一些内部字符串列表。那些字符串列表有特殊的字符,比如0x1,0x2,0x3来分隔一些内部结构,字符串列表也可能包含一些混合语言。

然后我们发现IBM ICU Collat​​or以意想不到的方式对它们进行排序,例如,我们有字符串:

firstName
firstName\x1Account Name
firstName - lastName

\ x1表示十进制值为1的字符。

我们希望排序保持顺序,但相反,它会在英语区域设置中提供以下结果:

firstName
firstName - lastName
firstName\x1Account Name

我们想知道是否有任何设置,以便我们可以使用小于0x5的特殊字符。

感谢。

1 个答案:

答案 0 :(得分:0)

我建议只将各个子字段排序在一起。除此之外,您可以附加一个规则字符串,例如& \uFFFF = \u0001 = \u0002 = \u0003 = \u0004 = \u0005,它会说0x1,2,3,4,5比任何其他文本都排序。