代码之家  ›  专栏  ›  技术社区  ›  riorio

组织编码问题。json。易于理解的JSONObject-转向

  •  0
  • riorio  · 技术社区  · 8 年前

    我有以下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对象读取值时 ☠读取为 ★

    聚甲醛 文件中,我声明以下从属关系:

    • json简单版1.1
    • gson版本2.8.2

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

    1 回复  |  直到 8 年前
        1
  •  3
  •   Erwin Bolwidt    8 年前

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

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