我正在使用FileUtils.readFileToString一次性使用JSON读取文本文件的内容。该文件采用UTF-8编码(无BOM)。然而,我得到的不是西里尔字母而是??????迹象。为什么呢?
public String getJSON() throws IOException
{
File customersFile = new File(this.STORAGE_FILE_PATH);
return FileUtils.readFileToString(customersFile, StandardCharsets.UTF_8);
}
答案 0 :(得分:0)
FileUtils.readFileToString
与StandardCharsets.UTF_8
不兼容。
相反,尝试
FileUtils.readFileToString(customersFile, "UTF-8");
或
FileUtils.readFileToString(customersFile, StandardCharsets.UTF_8.name());
答案 1 :(得分:0)
这就是我在2015年解决问题的方式:
public String getJSON() throws IOException
{
// File customersFile = new File(this.STORAGE_FILE_PATH);
// return FileUtils.readFileToString(customersFile, StandardCharsets.UTF_8);
String JSON = "";
InputStream stream = new FileInputStream(this.STORAGE_FILE_PATH);
String nextString = "";
try {
if (stream != null) {
InputStreamReader streamReader = new InputStreamReader(stream, "UTF-8");
BufferedReader reader = new BufferedReader(streamReader);
while ((nextString = reader.readLine()) != null)
JSON = new StringBuilder().append(JSON).append(nextString).toString();
}
}
catch(Exception ex)
{
System.err.println(ex.getMessage());
}
return JSON;
}