我目前正在使用我找到的代码(问题的最佳答案)here一切正常,直到你给它一个日语 String
输入。
我认为 UTF-8
字符集可以解决问题,但我不确定代码的哪一部分不允许序列化日文字符。
例如,如果我序列化像 "ひらガナ"
这样的基本内容,它将输出垃圾字符。
我正在做的事情是这样的
String serialized = serialize("ひらがな");
String deserialized = deserialize(serialized, new TypeToken<String>() {}.getType());
System.out.println(deserialized);
但是我得到了一个垃圾反序列化
。
有人可以解释一下吗?谢谢。
最佳答案
我不知道您问题的确切答案,但我可以说我遇到了类似的问题,这就是我的解决方案。也许这是给你的提示:
我只使用 GSON 进行反序列化。我不得不更改以下代码
json = gson.fromJson(new InputStreamReader(is), parseType);
到
json = gson.fromJson(new InputStreamReader(is,"UTF-8"), parseType);
所以问题出在我的输入流阅读器上,而不是 GSON 本身。我想知道你是否需要使用 string reader用于反序列化或其他东西。抱歉,我无法给您更具体的答案。
关于java - 如何使用 GSON 序列化 UTF-8 中的日文字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19277136/