使用org.json.simple.JSONObject进行编码问题 - 将★转换为...

时间:2018-04-09 12:40:54

标签: java json character-encoding gson

我有以下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 文件中,我声明了以下依赖项:

  • json-simple version 1.1
  • gson版本2.8.2

我认为这不是编码问题,因为直到今天使用上面没有编码规范的代码才能读取文件。

1 个答案:

答案 0 :(得分:3)

您需要在InputStreamReader的构造函数中指定字符编码。假设它是通常的UTF-8编码,您应该使用:

JsonReader jsonReader = new JsonReader(
        new InputStreamReader(new FileInputStream(currentFile), 
                              StandardCharsets.UTF_8));