Aar*_*erg 16 java string unicode
对于我正在编写的Java程序,我特别需要按Unicode代码点按字典顺序对字符串进行排序.这是不一样的String.compareTo(),当你开始处理基本多文种平面以外的值.String.compareTo()按字典顺序比较16位char值的字符串.要知道这不等同,请注意U + FD00 ARABIC LIGATURE HAH WITH YEH ISOLATED FORM小于U + 1D11E MUSICAL SYMBOL G CLEF,但阿拉伯字符的Java String对象"\uFD00"比"\uD834\uDD1E"谱号的代理对要大.
我可以使用String.codePointAt()和Character.charCount()手动循环代码点,并在必要时自己进行比较.是否有API函数或其他更"规范"的方法?
它称为排序规则。请参阅https://docs.oracle.com/javase/tutorial/i18n/text/locale.html
请注意,您的数据库也可以使用排序规则对查询结果进行排序。例如,参见 mysql 支持的内容https://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html