Я пытаюсь разделить все китайские символы из String, но я столкнулся с странной ситуацией для персонажа 𥑮
scala> "𥑮"
res1: String = 𥑮
scala> res1.length
res2: Int = 2
scala> res1.getBytes
res3: Array[Byte] = Array(-16, -91, -111, -82)
scala> res1(0)
res4: Char = ?
scala> res1(1)
res5: Char = ?
Это один символ, но Java/ Scala определяет его как два неизвестных символа. И обычно я вижу, что китайский символ занимает три байта в UTF-8, но этот символ занимает четыре.
Следовательно, я не могу разбить String и найти этот единственный символ. Хуже того, при использовании myString.replaceAll("[^\\p{script=Han}]", "")
для вывода всех некитайских символов вторая часть 𥑮 заменяется и становится недопустимой строкой.
Есть ли какое-либо решение? Я использую openjdk-8-jdk на Ubuntu.