5

我正在使用一个名为 Jsoup 的 HTML 解析器来加载和解析 HTML 文件。问题是我正在抓取的网页ISO-8859-1在 Android 使用UTF-8编码(?)时以字符集编码。这导致某些字符显示为问号。

所以现在我想我应该将字符串转换为 UTF-8 格式。

现在我在 Android SDK 中找到了这个名为CharsetEncoder的类,我想这对我有帮助。但是我不知道如何在实践中实现它,所以我想知道是否可以通过一个实际的例子来获得帮助。

更新:读取数据的代码(Jsoup

url = new URL("http://www.example.com");
Document doc = Jsoup.parse(url, 4000);
4

2 回答 2

6

您可以让 Android 为您完成这项工作,方法是将页面读入 byte[],然后使用 jSoup 方法解析 String 对象。

当您使用正确的 String构造函数从服务器读取的数据创建字符串时,不要忘记指定编码。

于 2010-07-02T06:54:49.140 回答
4

字节编码和字符串

public static void main(String[] args) {

      System.out.println(System.getProperty("file.encoding"));
      String original = new String("A" + "\u00ea" + "\u00f1"
                                 + "\u00fc" + "C");

      System.out.println("original = " + original);
      System.out.println();

      try {
          byte[] utf8Bytes = original.getBytes("UTF8");
          byte[] defaultBytes = original.getBytes();

          String roundTrip = new String(utf8Bytes, "UTF8");
          System.out.println("roundTrip = " + roundTrip);

          System.out.println();
          printBytes(utf8Bytes, "utf8Bytes");
          System.out.println();
          printBytes(defaultBytes, "defaultBytes");
      } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
      }

   } // main
于 2010-07-03T15:19:02.537 回答