我正在为 Java 10 中的 Unicode 字符而苦苦挣扎。
我正在使用 java.text.BreakIterator 包。对于这个输出:
myString="ab" hex=0061d835dcde0062
myString.length()=4
myString.codePointCount(0,s.length())=3
BreakIterator output:
a hex=0061
hex=d835dcde
b hex=0062
似乎是正确的。
使用相同的 Java 代码,然后使用此输出:
myString="G̲íl" hex=0047033200ed006c
myString.length()=4
myString.codePointCount(0,s.length())=4
BreakIterator output:
G̲ hex=00470332
í hex=00ed
l hex=006c
似乎也正确,除了 codePointCount=4。
为什么不是 3,有没有办法在不使用 BreakIterator 的情况下获得 3 值?
我的目标是确定字符串的所有(输出)字符是否都是 16 位的,或者是否存在代理或组合字符?