5

HTML ファイルを読み込んで解析するために、Jsoup という HTML パーサーを使用しています。ISO-8859-1問題は、 Android がUTF-8エンコーディング (?)を使用しているときに、スクレイピングしている Web ページが文字セットでエンコードされていることです。これにより、一部の文字が疑問符として表示されます。

したがって、文字列を UTF-8 形式に変換する必要があると思います。

これで、Android SDK にCharsetEncoderという名前のこのクラスが見つかりました。これが役立つと思います。しかし、実際に実装する方法がわからないので、実際の例で助けてもらえないでしょうか。

更新: データを読み取るコード ( Jsoup )

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

2 に答える 2

6

ページを byte[] に読み込み、jSoup メソッドを使用して String オブジェクトを解析することで、Android に作業を任せることができます。

正しい 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 に答える