我們一般都會將項目和代碼的編碼格式設(shè)置為 UTF-8 ,但是盡管如此,有時還是會出現(xiàn)亂碼的情況,怎么辦?
我們在 handle-json-xml
項目的基礎(chǔ)上,進(jìn)行修改成為另外一個新項目。
將 MyResource.java 改為如下:
@Path("myresource")
public class MyResource {
/**
* 方法處理 HTTP GET 請求。返回的對象以"text/plain"媒體類型
* 給客戶端
*
* @return String 以 text/plain 形式響應(yīng)
*/
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
return "Got it!";
}
/**
* 方法處理 HTTP GET 請求。返回的對象以"application/xml"媒體類型
* 給客戶端
*
* @return MyPojo 以 application/xml 形式響應(yīng)
*/
@GET
@Path("pojoxml")
@Produces(MediaType.APPLICATION_XML)
public MyBean getPojoXml() {
MyBean pojo = new MyBean();
pojo.setName("歡迎光臨:waylau.com");
pojo.setAge(28);
return pojo;
}
/**
* 方法處理 HTTP GET 請求。返回的對象以"application/json"媒體類型
* 給客戶端
*
* @return MyPojo 以 application/json 形式響應(yīng)
*/
@GET
@Path("pojojson")
@Produces(MediaType.APPLICATION_JSON)
public MyBean getPojoJson() {
MyBean pojo = new MyBean();
pojo.setName("歡迎光臨:waylau.com");
pojo.setAge(28);
return pojo;
}
}
啟動項目,訪問瀏覽器 http://localhost:8080/, 點(diǎn)擊“POJO JSON” 或者 “POJO XML”,顯示如下,中文已亂。
在返回的數(shù)據(jù)里面,我們設(shè)置編碼格式 charset=utf-8
,關(guān)鍵代碼如下:
private final static String CHARSET_UTF_8 = "charset=utf-8";
@GET
@Path("pojoxml")
@Produces(MediaType.APPLICATION_XML + ";" + CHARSET_UTF_8)
public MyBean getPojoXml() {
MyBean pojo = new MyBean();
pojo.setName("歡迎光臨:waylau.com");
pojo.setAge(28);
return pojo;
}
@GET
@Path("pojojson")
@Produces(MediaType.APPLICATION_JSON + ";" + CHARSET_UTF_8)
public MyBean getPojoJson() {
MyBean pojo = new MyBean();
pojo.setName("歡迎光臨:waylau.com");
pojo.setAge(28);
return pojo;
}
再次訪問瀏覽器,查看到所有的中文顯示都正常了。
更多建議: