2

データを含む ISO8859-1 (Latin1) ファイルを取得する Android アプリがあります。基本的に、アクセントのない対応する文字に変換したいポルトガル語の単語。

はい、私はこれについて多くのグーグル検索を行い、

      Normalizer.normalize(input, Normalizer.Form.NFD);

トリック、はい、私も試しました

      String.replaceAll("[áâã]", "a").replaceAll(....)....

しかし、文字列はアクセントのままです。また、プロジェクトのエンコーディングをいじってみましたが、どこを変更すればよいかわかりません (これが解決策である場合)。

4

2 に答える 2

3

わかりました、私は答えを見つけました。InputStreamReader を読み取るときに「Latin1」を追加しました(設定にもかかわらず、UTF-8などを想定していたようです)。

だから、これは私が今ファイルを読む方法です:

 br = new BufferedReader(new InputStreamReader(new FileInputStream(Environment.BR_DB), "Latin1"));

UnsupportedEncodingException を追加する必要がありました。

以前の回答をありがとう、

L.
于 2012-09-21T04:10:56.387 に答える
2

オースレンが言ったように...

いいえ

String.replaceAll("[áâã]", "a").replaceAll(....)

しかし

value = String.replaceAll("[áâã]", "a").replaceAll(....)

[編集]

置き換えるオブジェクトとして文字列クラスを使用しないでください...このコードをテストしたところ、完全に実行されました...

String weirdAs = "ábâcdeã";

String newString = weirdAs.replaceAll("[áâã]", "a");

Toast.makeText(_context,
            "New String: " + newString + " Weird As: " + weirdAs,
            Toast.LENGTH_LONG).show();

[編集2]

楽しみのために...ここにlogcat出力があります...

09-14 09:16:23.502: I/Test(12022): Original String (Weird As): ábâcdeã
09-14 09:16:23.502: I/Test(12022): New String: abacdea
于 2012-09-14T12:25:28.683 に答える