良い一日。
スペイン語の ASCII ファイルがあります。これらには、A から Z までの文字と Ñ、ASCII コード 165 ( http://www.asciitable.com/ ) のみが含まれます。このソース コードでこのファイルを取得します。
InputStream is = ctx.getAssets().open(filenames[lang_code][w]);
InputStreamReader reader1 = new InputStreamReader(is, "UTF-8");
BufferedReader reader = new BufferedReader(reader1, 8000);
try {
while ((line = reader.readLine()) != null) {
workOn(line);
// do a lot of things with line
}
reader.close();
is.close();
} catch (IOException e) { e.printStackTrace(); }
ここで workOn() と呼んだのは、文字列から文字コードを抽出する関数で、次のようなものです。
private static void workOn(String s) {
byte b;
for (int w = 0; w < s.length(); w++) {
b = (byte)s.charAt(w);
// etc etc etc
}
}
残念ながら、ここで起こることは、b が Ñ 文字を表している場合、b を ASCII コードとして識別できないことです。b の値は任意の ASCII 文字に対して正しく、Ñ を処理する場合は -3 を返します。これは符号付きで 253、または ASCII 文字 ² です。Ñに似たものは何もありません...
そこで何が起こるの?この単純な ASCII コードを取得するにはどうすればよいですか?
私を怒らせているのは、正しいコーディングが見つからないことです。でも、UTF-8 テーブル ( http://www.utf8-chartable.de/ ) をブラウズすると、Ñ は 209dec、253dec は ý、165dec は ¥ です。繰り返しますが、必要なものに関連するイベントではありません。
だから…助けてください!:(