Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中显示的字符串输出不同_Android - Fatal编程技术网

Android中显示的字符串输出不同

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 完成任务的时

我有一些解析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的解析导致了一些问题,所以我将包含这些代码,因为我知道在哪里可以找到它

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的东西都不是我写的,而且写得不好。。。。