我正在编写一个Android应用程序,我在其中请求并接收带有日语值的键的JSON对象。我正在将我想要的值转换为字符串,如下所示:
String myString = new String(myJSONObject.getString("key").getBytes("UTF8"), "UTF8");
然而,当我显示它时,它似乎是无意义的:
键和值存在且正确。
为什么会这样?
答案 0 :(得分:2)
当您使用浏览器获得相同的JSON字符串时,是否获得了正确的字符? HTTP请求的内容编码是什么?将它们输出到日志时它们是否正确?您必须首先确定它是传输问题,编码不匹配问题还是仅显示问题。尝试回答上述问题以缩小范围。
答案 1 :(得分:1)
如果它没有正确显示日语,那么因为Java处于默认字体模式,您需要更新Java fontconfig.properties
文件,这需要放在运行时的lib目录中。我不确定这是否适用于Android,因为我没有制作应用程序,但这是我为常规Java开发所做的。
另外,检查一下,这是德语,但UTF-8仍然是:decode string encoded in utf-8 format in android
答案 2 :(得分:0)
尝试使用"UTF-8"
代替"UTF8"