(Чтобы это не было закрыто как слишком локализованное, я выбрал Ꙭ в качестве примера, но это происходит и для многих других символов)
Символ Ꙭ равен \uA66C или десятичному числу 42604 (http://unicodinator.com/#A66C). Я вижу некоторые очень странные вещи, которые я не могу понять при использовании класса Java Character.
1) Character.isLetter('Ꙭ');//won't compile, complains 'unclosed character literal'
2) Character.isLetter("Ꙭ".charAt(0)); //returns true, which is right
3) Character.isLetter(42604);//returns false
4) Character.isLetter('\uA66C');//returns false
5) "Ꙭ".codePointAt(0);//returns 205? 205 is Í http://unicodinator.com/#00CD
6) ("Ꙭ".charAt(0)==(char)42604) //is false
Все, кроме # 2, не имеет для меня смысла. Этот символ находится в BMP и не от \uD800 до\uDFFF, поэтому не должно быть никакой сложности с суррогатами. Похоже, я пропустил здесь ключевую концепцию...