gpt4 book ai didi

java - Java JSON 解析中显示为问号的 Unicode 字符

转载 作者:搜寻专家 更新时间:2023-10-31 19:48:08 24 4
gpt4 key购买 nike

过去几天我一直在搜索这个,但我认为我找不到正确的指针。如果发现重复,请将其与相应的问题合并。

我是使用 JSON 的新手,作为我的一个项目的一部分,我需要解码 JSON 文件并对其进行进一步处理。但是,当我尝试使用 Json-simple 库解码时,我在解析的对象中得到了一些奇怪的问号,而不是实际的字符。示例代码如下所示:

String str = "{\"alias\": [\"Evr\u00f3pa\", \"\u05d0\u05d9\u05e8\u05d5\u05e4\"]}";
JSONParser parser = new JSONParser();
JSONObject jsonObject = (JSONObject)parser.parse(str);

System.out.println(jsonObject) gives {"alias":["Evrópa","?????"]}

我也尝试使用 Json-lib,结果相同。

感谢您的帮助。

最佳答案

问题不在于您的 JSON,而在于您的 System.out.println()。这些字符不能用您的终端(或您的 IDE,如果您运行它的地方)的字符编码或您环境中 System.out 使用的编码来表示。

文件不能包含 Unicode 字符。文件是 字节 的流,但 Unicode 字符 的大小是多个字节(通常是两个字节)。这是字符编码变得相关的地方。 Unicode 字符必须转换为字节序列才能将它们写入文件(包括 System.out)。 Unicode 字符最常用的编码之一是 UTF-8。软件程序员的诀窍是在字节和字符之间转换时始终使用正确的字符编码。在一个地方缺少正确的编码,例如在调试 println() 调用中,将给出错误和误导性的输出。

关于java - Java JSON 解析中显示为问号的 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11868022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com