我正在处理一个项目,但是当我从文件中读取时,它无法读取某些字符(例如č
,ž
,š
等。)我不这样做知道我做错了什么。
这是我的代码:
try {
reader = new InputStreamReader(getAssets().open("koce_podatki.txt"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader br = new BufferedReader(reader);
for(int i=-1;i<position;i++){
try {
temp = "" + br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:7)
您的问题是编码之一。文件只存储字节。
有许多方法可以将字节映射到字符(这些方式称为编码)。
当您从文本文件中读取内容时,您必须知道并指定使用哪种编码。
如果你不在Java中指定编码,将使用平台默认编码,可能是也可能不是。
在您的情况下,不您想要的是什么。要解决此问题,请找出正确的编码并在the InputStreamReader
constructor中指定。
要尝试的常见编码是UTF-8。如果您告诉我们您看到的内容而不是那些字符,我们可以帮助您猜测正确的编码。
答案 1 :(得分:-1)
尝试这种方式:
try {
reader = new InputStreamReader(getAssets().open("koce_podatki.txt"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader in = new BufferedReader(reader);
while( (s = in.readLine()) != null) {
String UTF8Str = new String(s.getBytes(),"UTF-8"));
temp=""+UTF8Str;
}