Unicode字符显示为??关于debian

时间:2015-01-10 05:20:08

标签: java debian gson

我正在解析从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

1 个答案:

答案 0 :(得分:0)

我明白了。

我的机器上的默认charmap不是UTF-8,因此它无法正确处理字符,而是替换为?

为了解决这个问题,我将字符串json的定义更改为:

String json = new String(in, Charset.forName("UTF-8"));

这样返回的String将以UTF-8处理,而不是默认编码。