我从 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);
在大多数情况下,它工作正常,但有时结果会被破坏。例如,对于像我这样的输入名称,我得到了,"гордунни"
等值。似乎代理对由于某种原因被随机破坏。我在 1000 次中得到了 4 次。"горд��нни"
"горду��ни"
"г��рдунни"
如何解决?我是否需要使用其他 String 方法而不是 indexOf()+substring() 或对我的结果使用一些编码/解码魔法?