我的资源文件夹中有一个文本文件,其中有一些德语和中文文本。我用这段代码来读取文件
public String loadJSONFromAsset()
{
String json = null;
try {
InputStream is = getActivity().getAssets().open("name.json.txt");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
}
catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
但是当我在TextView中显示时,它会在菱形内显示为问号。我的代码出了什么问题?有人请帮忙。
答案 0 :(得分:2)
这可能是因为您的文件在使用MS记事本时默认使用不同的字符集进行编码,例如 ANSI 。您可以尝试使用不同的字符集来获得预期的结果。
json = new String(buffer, "ISO8859-1");
答案 1 :(得分:0)
尝试这种方法:
try {
File fileDir = new File("name.json.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir), "UTF8"));
String str = null;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
in.close();
}
catch (UnsupportedEncodingException e)
{
System.out.println(e.getMessage());
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
catch (Exception e)
{
System.out.println(e.getMessage());
}