JavaWeb開發之PrintWriter亂碼

lvxiangan發表於2018-06-12

PrintWriter 輸出資訊亂碼

  非同步方式,返回json給前臺時,向前臺輸出資訊使用PrintWriter,但是在輸出的過程中,出現亂碼的情況。

於是我想起來response.setCharacterEncoding("utf-8");設定頁面編碼,以及response.setContentType("text/html; charset=utf-8");設定內容型別編碼,但是在實驗後不成功,亂碼依舊。

1
2
3
4
5
6
PrintWriter out = response.getWriter();
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
out.print(json);
out.flush();
out.close();

 返回的json如下:

1
{"seriesData":[22619,22671,21908,5415,0],"caption":"組織機構程式碼-年度統計","xAxisData":["2010年度","2011年度","2012年度","2013年度","2014年度"]}

 經檢查,發現PrintWriter會先獲取專案的 編碼,根據編碼來自己設定characterEncoding,所以得在獲取這個PrintWriter物件之前設定編碼。如下:注意順序。

1
2
3
4
5
6
7
  
response.setCharacterEncoding("utf-8");
  response.setContentType("text/html; charset=utf-8");
  PrintWriter out = response.getWriter();
    out.print(json);
    out.flush();
    out.close();


轉自:https://www.cnblogs.com/lucky2u/p/3807931.html

相關文章