Android中显示的字符串输出不同
我有一些解析html字符串并将其转换为常规字符串的代码 输入: Lorem ipsum dolor sit amet,是一位杰出的献身者。维瓦摩斯a 镍元素。非怀孕妇女之间的关系。多尼克 暂时性缺陷。Donec euismod enim vitae nibh 布兰迪特 屏幕2上的输出: Lorem ipsum dolor sit amet,concertetur adipiscing elit=2E Vivamus a 元素=entum nisl=2E非妊娠期妇女中间的粗糙度=2E 完成任务的时间间隔=完成任务的时间间隔 尼布·布兰迪特 但是,在屏幕1上,输出与输入匹配。我的问题是,我的代码中有什么可能导致这种情况,我没有编写整个应用程序,因此我必须通过大量代码才能找到错误,因此我试图缩小可能导致两个输出之间差异的原因。此外,我真的不知道elementum为什么变成elem=entum,我猜这是一个换行问题 编辑:基本上是什么导致这两个输出不同,我如何跟踪它 编辑2:这是一个辅助输入输出 输入 测试周期。然后…现在引用“内部引号”,然后是ex!@$%^&>*( ) - _ + = \ | [] {} ; : ‘ “,./?”~ 输出 测试周期=2E然后=E2=80=A6,现在引号=E2=80=9Cinside>q=uotes=E2=80=9D,然后ex!#$%^&*()-|+=3D\\[]{};=:>=E2=80=98=E2=80=9C,=2E/?'~ 除此之外,屏幕1与输入相同 编辑3:因为我猜我对HTML的解析导致了一些问题,所以我将包含这些代码,因为我知道在哪里可以找到它Android中显示的字符串输出不同,android,Android,我有一些解析html字符串并将其转换为常规字符串的代码 输入: Lorem ipsum dolor sit amet,是一位杰出的献身者。维瓦摩斯a 镍元素。非怀孕妇女之间的关系。多尼克 暂时性缺陷。Donec euismod enim vitae nibh 布兰迪特 屏幕2上的输出: Lorem ipsum dolor sit amet,concertetur adipiscing elit=2E Vivamus a 元素=entum nisl=2E非妊娠期妇女中间的粗糙度=2E 完成任务的时
String bod = body.toString();
String bod2 = cleanTagPerservingLineBreaks(bod);
removeExtendedChars(bod2);
String bod3 = bod2.replace("=2E", "\\.");
return bod3;
}
public String cleanTagPerservingLineBreaks(String html) {
String result = "";
if (html == null)
return html;
Document document = Jsoup.parse(html);
document.outputSettings(new Document.OutputSettings()
.prettyPrint(false));// makes html() preserve linebreaks and
// spacing
document.select("br").append("\\n");
document.select("p").prepend("\\n\\n");
result = document.html().replaceAll("\\\\n", "\n");
result = Jsoup.clean(result, "", Whitelist.none(),
new Document.OutputSettings().prettyPrint(false));
return result;
}
public String removeExtendedChars(String str) {
return str.replaceAll("[^\\x00-\\x7F]", " ");
}
你的问题到底是什么?这篇文章有太多的漏洞。请简化,可能提供屏幕截图。显示你在每个屏幕上显示文本的代码,并添加一些日志,以确保这些输入在2个屏幕上是相同的。我不太确定这两个屏幕的用法以及如何不同。看起来你需要解码输出2:java.net.urldecker.decode(output2,“UTF-8”);@JoxTraex我把它缩短了一点,希望能有所帮助。@Minhtdh我正在试图找到那段代码,这基本上是我的问题,当我试图调试这段代码时,我要寻找什么。所有gui的东西都不是我写的,而且写得不好。。。。