我有以下JSON文件:
[
{ "meeting_place": "★ Cafe Roma ★" },
...
]
我正在使用JsonReader
& Gson
阅读文件:
JsonReader jsonReader = new JsonReader(new InputStreamReader(new FileInputStream(currentFile)));
jsonReader.beginArray();
Gson gson = new GsonBuilder().create();
while (jsonReader.hasNext()) {
JSONObject currentJsonObject = gson.fromJson(jsonReader, JSONObject.class);
// work on the currentJsonObject
}
所有工作都很好,直到今天,JsonReader正确读取了文件,其中包含所有特殊符号。
今天,突然间,当从JSON对象中读取值时,★
的值被读为★
在 pom 文件中,我声明了以下依赖项:
我认为这不是编码问题,因为直到今天使用上面没有编码规范的代码才能读取文件。
答案 0 :(得分:3)
您需要在InputStreamReader
的构造函数中指定字符编码。假设它是通常的UTF-8编码,您应该使用:
JsonReader jsonReader = new JsonReader(
new InputStreamReader(new FileInputStream(currentFile),
StandardCharsets.UTF_8));