我打开记事本(Windows)并写
Some lines with special characters
Special: ?????
并转到另存为…“someFile.txt”,其中Encoding设置为UTF-8.
在Java中我有
FileInputStream fis = new FileInputStream(new File("someFile.txt"));
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr);
String line;
while((line = in.readLine()) != null) {
printLine(line);
}
in.close();
但我得到问号和类似的“特殊”字符.为什么?
编辑:我有这个输入(.txt文件中的一行)
665,?????
和这段代码
FileInputStream fis = new FileInputStream(new File(fileName));
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr);
String line;
while((line = in.readLine()) != null) {
Toast.makeText(mContext, line, Toast.LENGTH_LONG).show();
Pattern p = Pattern.compile(",");
String[] article = p.split(line);
Toast.makeText(mContext, article[0], Toast.LENGTH_LONG).show();
Toast.makeText(mContext, Integer.parseInt(article[0]), Toast.LENGTH_LONG).show();
}
in.close();
和Toast输出(对于不熟悉Android的人来说,Toast只是一种在屏幕上显示特定文本的弹出窗口的方法)很好.控制台显示“奇怪的字符”(可能是因为控制台窗口中的编码).但它解析整数失败,因为控制台说这个(警告:吐司输出就好了) – Problem?
似乎String包含一些“奇怪”的字符,Toast无法显示/渲染,但是当我尝试解析它时,它会崩溃.建议?
如果我把ANSI放在NotePad中它可以工作(整数解析)并且没有如上图所示的怪异字符,但当然我的特殊字符不起作用.