最近在使用Java進行JSON返回時,遇到了返回問號的問題。我發現這個問題實際上是由于編碼問題而導致的。
JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "張三"); String jsonString = jsonObject.toString(); byte[] bytes = jsonString.getBytes(Charset.forName("ISO-8859-1")); jsonString = new String(bytes, Charset.forName("UTF-8")); response.setContentType("application/json;charset=UTF-8"); response.getWriter().write(jsonString);
在上面的代碼中,我先將JSON對象轉換為字符串,并將其編碼為ISO-8859-1格式的字節數組。接著,將字節數組轉換為UTF-8格式的字符串,以便返回給前端。
如果遇到返回問號的問題,可以嘗試使用UTF-8編碼來解決。在代碼中,需要設置response的編碼為UTF-8,并將字符串轉換為UTF-8格式。
response.setContentType("application/json;charset=UTF-8"); jsonString = new String(jsonString.getBytes(StandardCharsets.UTF_8)); response.getWriter().write(jsonString);
通過這種方式,我成功解決了返回問號的問題,希望對大家有所幫助。