1

これが古い質問であることは承知していますが、以前の回答に満足していません。私の質問は、UTF-8 または任意の手法を使用してフランス語の文字 (é、à など) を表示する方法です。

現在、これらは「?」を表示しています。

私のコードは次のとおりです。

InputStream is = null;
try {
    if(CommonUtilities.prefs.getString("KEY_LOCALE", "fr").equalsIgnoreCase("fr")){
        is = getAssets().open("terms_txt_fr.txt");  
    }else{
        is = getAssets().open("terms_txt_en.txt");
    }

    String term_tx =convertStreamToString(is);
    String valueUTF8 = new String(term_tx.getBytes(), "UTF-8");

    terms_tx.setText(valueUTF8);
} catch (IOException e) {
    e.printStackTrace();
}
4

1 に答える 1

1

コードは問題ありませんが、入力が UTF-8 でエンコードされていることを確認する必要があります。

それを行う方法はたくさんあります。それらはそれぞれ、オペレーティング システムなどの環境に固有のものです。ここに良い要約があります: 文字セット間でテキストファイルを変換する最良の方法は?

Linux(OSXでも同じだと思います)では、次のようにします。

iconv -f ISO-8859-15 -t UTF-8 in.txt > out.txt

ほとんどの優れたテキスト エディターには、ファイルの保存方法に関するオプションがあります。あなたもそれを確認したいかもしれません。最新のオペレーティング システムでは、UTF-8 をデフォルトにする必要があります。

于 2013-09-12T07:04:41.803 に答える