最近在使用Java進(jìn)行JSON返回時,遇到了返回問號的問題。我發(fā)現(xiàn)這個問題實際上是由于編碼問題而導(dǎo)致的。
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對象轉(zhuǎn)換為字符串,并將其編碼為ISO-8859-1格式的字節(jié)數(shù)組。接著,將字節(jié)數(shù)組轉(zhuǎn)換為UTF-8格式的字符串,以便返回給前端。
如果遇到返回問號的問題,可以嘗試使用UTF-8編碼來解決。在代碼中,需要設(shè)置response的編碼為UTF-8,并將字符串轉(zhuǎn)換為UTF-8格式。
response.setContentType("application/json;charset=UTF-8"); jsonString = new String(jsonString.getBytes(StandardCharsets.UTF_8)); response.getWriter().write(jsonString);
通過這種方式,我成功解決了返回問號的問題,希望對大家有所幫助。