【问题标题】:Android URLConnection returns ASCII decimals?Android URLConnection 返回 ASCII 小数?
【发布时间】:2015-10-04 20:42:57
【问题描述】:

我正在构建一个使用 URLConnection 来获取网页内容的 Android 应用,但由于某种原因,它会将诸如实际撇号 (') 之类的符号转换为它的 ASCII 十进制值 (')

示例:Let's go to the party 变为 Let's go to the party

我已经尝试将 InputStream 字符集设置为 ASCII,但这没有帮助。

代码:

            String bodyHtml;

        URL url = new URL(webPage);
        URLConnection urlConnection = url.openConnection();
        urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
        InputStream is = urlConnection.getInputStream();
        InputStreamReader isr = new InputStreamReader(is, "ASCII");

        int numCharsRead;
        char[] charArray = new char[1024];

        StringBuilder sb = new StringBuilder();
        while ((numCharsRead = isr.read(charArray)) > 0) {
            sb.append(charArray, 0, numCharsRead);
        }

        /*StringBuffer sb = new StringBuffer();
        while ((numCharsRead = isr.read(charArray)) > 0) {
            sb.append(charArray, 0, numCharsRead);
        }*/

        bodyHtml = sb.toString();

【问题讨论】:

  • 试试 Google 的 volley :-)
  • 'new InputStreamReader(is, "ASCII");'. ??? ASCII ???删除它!

标签: android decimal ascii urlconnection


【解决方案1】:

使用URLDecoder.decode

bodyHtml = URLDecoder.decode(bodyHtml);

【讨论】:

  • 似乎已弃用。我试过 java.net.URLDecoder.decode(sb.toString(), "UTF-8");但这并没有解决问题
【解决方案2】:

您需要将接收到的字符串转换为 html 并转换回字符串。 Html.fromHtml(value) 会将接收到的值转换为 html。调用 .toString() 将返回字符串(没有任何 html 标签)

// import this package
import android.text.Html;

从 url 接收内容后..您可以将该内容转换为可读形式..

String value ="Let's go to the party";

String formattedValue =   Html.fromHtml(value).toString().trim();

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 2011-07-22
    • 2014-06-03
    • 2015-06-25
    • 1970-01-01
    • 2021-02-09
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多