1

HTMLコンテンツを解析していて、画面に出力があります。この Web サイトには、çÇşŞöÖğĞıİüÜ などのトルコ語の文字が含まれています。それらを適切な文字として表示することはできません。まだクエスチョン マークとして出力されています。

Eclipse -> プロジェクト -> プロパティ -> リソース -> テキスト ファイルのエンコード = コンテナーから継承 (Cp1254)

私はウェブを検索し、この解決策を見つけました:

Eclipse -> プロジェクト -> プロパティ -> リソース -> テキスト ファイルのエンコーディング = その他: UTF-8

しかし、それは機能していません。ファイルの現在の文字のみが変更されます。(私の活動にそのようなキャラクターがいるタイトルがあります)

何か助けはありますか?前もって感謝します...

4

2 に答える 2

0

OK、私はついに本当の解決策を見つけました。解析元に応じて(charset = iso-8859-9およびEclipseではutf-8を使用してデータを取得しています)、char置換操作を実行する必要があります。私の場合、

    context = context.replaceAll("İ", "İ");
    context = context.replaceAll("ı", "ı");
    context = context.replaceAll("Ö", "Ö");
    context = context.replaceAll("ö", "ö");
    context = context.replaceAll("Ü", "Ü");
    context = context.replaceAll("ü", "ü");
    context = context.replaceAll("Ç", "Ç");
    context = context.replaceAll("ç", "ç");
    context = context.replaceAll("Ğ", "Ğ");
    context = context.replaceAll("ğ", "ğ");
    context = context.replaceAll("Ş", "Ş");
    context = context.replaceAll("ş", "ş");

ここで、contextは、解析されたすべてのデータを保持し、TextViewに出力される文字列です。それで全部です。ずっと前に考えるべきだった!

于 2012-06-20T09:14:05.513 に答える
0

それはすべて、HTMLをメモリに解析する方法によって異なります。スキャナークラスを使用してファイルから取得し、htmlファイルがutf-8として保存されている場合は、次のようにします。

Scanner scanner = new Scanner(file, "UTF-8");

org.apache.httpパッケージを使用してWebから読み取り、コンテンツをオブジェクトとして持つHttpEntity場合は、次のようにします。

String content = EntityUtils.toString(httpEntity, "UTF-8");

つまり、すべてはhtmlファイルの読み方によって異なります。通常、リーダーの作成時にエンコーディングを指定できます。これを、ファイルが保存されているエンコーディングと一致させる必要があります。

于 2012-06-12T13:36:47.043 に答える