Java JsonReader错误地转换unicode字符

Java JsonReader错误地转换unicode字符,java,android,json,gson,Java,Android,Json,Gson,我正在构建一个Android应用程序,我有包含Unicode字符串的JSON数据。当接收数据并使用InputStreamReader解析数据时,Unicode字符串保持良好状态。然而,当我使用JsonReader解析JSON时,它似乎已将其转换为某种格式。我查看了源代码,它似乎没有做任何异常的事情(显然我可能遗漏了一些东西)-它只是获取字符串并将其保存到字符串变量中。有人知道我的Unicode字符串被错误转换的原因吗 谢谢您可以使用InputStreamReader将流解码为字符串,并指定编码(

我正在构建一个Android应用程序,我有包含Unicode字符串的JSON数据。当接收数据并使用InputStreamReader解析数据时,Unicode字符串保持良好状态。然而,当我使用JsonReader解析JSON时,它似乎已将其转换为某种格式。我查看了源代码,它似乎没有做任何异常的事情(显然我可能遗漏了一些东西)-它只是获取字符串并将其保存到字符串变量中。有人知道我的Unicode字符串被错误转换的原因吗


谢谢

您可以使用
InputStreamReader
将流解码为字符串,并指定编码(例如UTF-8或Unicode),然后将字符串传递给
JSONObject
JSONArray
,以创建此类对象

JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
参考文件:


向我们展示代码:您使用什么作为
JsonReader
的输入?如何构造
InputStreamReader
?是否在任何地方指定编码?它是如何被错误地转换的?输入是什么?输出是什么?IIRC该字符集称为“UTF-8”(带破折号)。