美好的一天。扩展ascii表的ReadLine和编码
我有一个带有西班牙文单词的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标识为ASCII码。对于任何ASCII字母,b的值都是正确的,并且在处理Ñ,带符号,253或ASCII字符²时返回-3。没有类似于Ñ...
这里会发生什么?我应该如何获得这个简单的ASCII码?
让我发疯的是我无法找到正确的编码。即使如果我去浏览UTF-8表(http://www.utf8-chartable.de/)Ñ是209dec和253dec是ý,165dec是¥。再次,不是我需要的事件亲属。
所以......请帮助我! :(
你可以看看你的文件在十六进制编辑器或显示生字节?我怀疑253不是你在一个文件中的字节(因为你正在阅读流为UTF-8) – 2013-02-14 22:55:38
是的可能...这是我的问题实际上:/ – 2013-02-14 23:00:43
正如你建议我,我用一个十六进制编辑器,我在文件中的字符有编码209. – 2013-02-14 23:07:26