如何使用GSON序列化UTF-8中的日语字符?

Inc*_*ito 5 java serialization json java-ee gson

我目前正在使用代码(问题的最佳答案)我在这里发现一切正常,直到你给它一个日语String输入.

我认为UTF-8charset可以做到这一点,但我不确定代码的哪一部分不允许日文字符序列化.

例如,如果我序列化基本的东西,就像"????"它会输出垃圾字符.

我正在做的事情是这样的

String serialized = serialize("????");
String deserialized = deserialize(serialized, new TypeToken<String>() {}.getType());
System.out.println(deserialized);
Run Code Online (Sandbox Code Playgroud)

但我得到了垃圾deserialized.

有人可以解释一下吗?谢谢.

Bjo*_*che 6

我不知道您问题的确切答案,但我可以说我遇到了类似的问题,这是我的解决方案。或许对你来说是一个提示:

我只使用 GSON 进行反序列化。我不得不更改以下代码

json = gson.fromJson(new InputStreamReader(is), parseType);
Run Code Online (Sandbox Code Playgroud)

json = gson.fromJson(new InputStreamReader(is,"UTF-8"), parseType);
Run Code Online (Sandbox Code Playgroud)

所以问题出在我的输入流阅读器中,而不是 GSON 本身。我想知道您是否需要使用字符串阅读器进行反序列化或其他操作。对不起,我不能给你更具体的答案。

  • 这与我得到的解决方案相同。很高兴你发布了,因为我在解决问题后忘记发布我的解决方案:D (2认同)