在使用Java進行JSON解析的過程中,我們經常會遇到一個麻煩的問題——漢字亂碼。這個問題的出現往往是由于編碼格式不一致所導致的。
String jsonStr = "{\"name\":\"張三\",\"age\":24}"; // 以下代碼出現亂碼 JSONObject jsonObject = new JSONObject(jsonStr); String name = jsonObject.getString("name"); System.out.println(name); // 輸出???,而不是張三
解決這個問題的關鍵在于明確每一步使用的編碼格式,保證它們一致。下面是一些常見的解決方法:
- 將JSON字符串轉成字節數組時,指定編碼格式:
- 使用流讀取JSON字符串時,指定編碼格式:
- 將JSON字符串轉成JSON對象時,指定編碼格式:
- 將JSON字符串轉成實體類對象時,添加注解指定編碼格式:
byte[] bytes = jsonStr.getBytes("UTF-8");
InputStream is = new ByteArrayInputStream(jsonStr.getBytes("UTF-8"));
JSONObject jsonObject = new JSONObject(new String(bytes, "UTF-8"));
public class User { @SerializedName("name") @JsonEncoding("UTF-8") private String name; @SerializedName("age") private int age; // getter和setter }
總之,在進行JSON解析時,一定要注意編碼格式的一致性,否則就會出現漢字亂碼等問題。
上一篇css 固定兩行
下一篇css 去掉藍色聚焦框