我正在解析从Minecraft服务器的ping请求中收到的JSON。该代码在Windows上运行正常,并提供以下输出:
§4§l> §f§l> §4§l> §7-=[ §5§lMythCraft §6§lNetwork §7]=- §4§l> §f§l> §4§l> §7-=[ §b§lFaction 1 Has Reset §e➸ §c§lFresh Map! §7]=-
然而,在我的Debian VPS上输出以下内容:
??4??l> ??f??l> ??4??l> ??7-=[ ??5??lMythCraft ??6??lNetwork ??7]=- ??4??l> ??f??l> ??4??l> ??7-=[ ??b??lFaction 1 Has Reset ??e??? ??c??lFresh Map! ??7]=-
我认为这是一个编码问题。我对么?我该如何解决?
ping代码为here。
答案 0 :(得分:0)
我明白了。
我的机器上的默认charmap不是UTF-8,因此它无法正确处理字符,而是替换为?
。
为了解决这个问题,我将字符串json
的定义更改为:
String json = new String(in, Charset.forName("UTF-8"));
这样返回的String将以UTF-8处理,而不是默认编码。