Java中常用的處理JSON數據的方法是使用第三方庫,例如Jackson、Fastjson等。在處理JSON中出現中文漢字時,有時候會出現亂碼問題。
出現漢字亂碼的原因是因為Java的默認編碼方式是UTF-8,而在JSON轉換時使用的編碼方式可能不是UTF-8,導致亂碼。
解決漢字亂碼的方法有兩種:
1. 指定編碼方式
String json = "{\"name\": \"張三\"}"; String utf8Json = new String(json.getBytes("ISO-8859-1"), "UTF-8"); System.out.println(utf8Json);
上述代碼中使用getBytes方法將字符串轉化為ISO-8859-1編碼方式的字節數組,然后再使用UTF-8編碼方式將字節數組轉化為字符串。這樣處理可以解決漢字亂碼。
2. 修改配置文件
在Jackson和Fastjson中都可以通過設置配置文件的方式來解決漢字亂碼問題。
在Jackson中,可以通過在ObjectMapper對象上設置Charset屬性為UTF-8來解決問題:
ObjectMapper mapper = new ObjectMapper(); mapper.setCharset(Charset.forName("UTF-8"));
在Fastjson中,可以通過設置SerializerFeature.WRITE_MAP_NULL_FEATURES屬性來解決問題:
JSON.toJSONString(obj, SerializerFeature.WRITE_MAP_NULL_FEATURES, SerializerFeature.WriteNullStringAsEmpty);
經過上述方法的處理,就可以順利地處理JSON中的漢字亂碼問題了。
上一篇vue本地文件路徑