我的一個程序,用到的后台數據庫是MySql,字段是Varchar類型,Character Set是utf8,字段能且已經正確存儲了中文。
從數據庫取出信息后,在后台Java代碼里Debug看到了正確的中文。
但是,通過Ajax方式將信息傳到前台,前台顯示??,用alert查看也是兩個問號。
看頁面編碼方式,<%@ page contentType="text/html; charset=UTF-8"%> 和<meta charset="utf-8"/>都有了。
回去看看Action里的處理,發現有三句對Response的重要處理忘卻了,它們是:
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setCharacterEncoding("UTF-8");
把這三句話放在
PrintWriter out =getPrintWriter(response);
前頭就好了。
就是這些,希望對遇到和我一樣問題的人有所幫助。
2017年1月9日15:52:37
此文可以與 JS傳中文到后台需要的處理 對照着看。