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

标签 java json jakarta-ee serialization gson

我目前正在使用我找到的代码(问题的最佳答案)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/

相关文章:

java - swagger文件默认属性的控制

javascript - 使用 JavaScript 创建 .json 文件并在其中存储数据?

用于解析 JSON 并添加到数据库 mysql 的 PHP

java - Spring MVC 3.1 RedirectAttributes 不工作

JavaEE 5、WAS 6.0 JSP 的奇怪问题包括

java - 415 当请求正文具有以自定义对象为键的 Map 时,出现不支持的对象异常

java - 从类中获取枚举值

android - 如何使用 Android 通过 Request 发送 JSON 对象?

java - 在 JPA 中,哪种类型的参数最好使用 "positional/named"?

java - 谷歌云中java实验的设置?