再会。
我有一个带有西班牙语单词的 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 是 ¥。同样,不是我需要的事件亲戚。
所以……请帮帮我!:(