UTF-8エンコーディングでストリームからいくつかのデータを読み取りました
String line = new String(byteArray, "UTF-8");
次に、いくつかのサブシーケンスを見つけようとします
int startPos = line.indexOf(tag) + tag.length();
int endPos = line.indexOf("/", startPos);
そしてそれを切る
String name = line.substring(startPos, endPos);
ほとんどの場合、問題なく動作しますが、結果が壊れることもあります。たとえば、"гордунни"
I got values like "горд��нни"
、などの入力名の場合"горду��ни"
、"г��рдунни"
何らかの理由でサロゲート ペアがランダムに壊れているようです。1000回中4回取れました。
修正方法は?indexOf()+substring() の代わりに他の String メソッドを使用する必要がありますか、それとも結果に対して何らかのエンコーディング/デコーディング マジックを使用する必要がありますか?