寫一個MVC程序,然后從數據庫調用數據返回給前端,然后數據庫在控制台輸出還是正確的。通過輸出在html中就 中文就成了問號????
然后網上找了兩種方法
第一種方法未成功
通過set方法 將所有 改為utf8
第二種方法 成功!!
servlet的response中加入了,就可以了
response.setHeader("Content-type", "text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8");
更新
看了一下尚學堂的servlet的講解,其中講了一下,post和get方法傳送出現亂碼有不同的解決方式
post方法傳遞出現問號就如上第二種方法所述,加一下response的字符編碼即可;
而get方法傳遞的參數則需要用另一種方法,通常網頁時iso,而數據庫時utf-8編碼,所以要進行一個轉換.
servlet獲取一個uname信息
String uname = request.getParameter("uname"); uname = new String(uname.getBytes("iso8859-1"),"utf-8");
總結
post方法:
response.setCharacterEncoding("UTF-8");
get方法:
uname = new String(uname.getBytes("iso8859-1"),"utf-8");
如果get方法中不想很麻煩的進行編碼轉換,可在tomcat的config文件夾下將 server.xml的文件中找到這段話
並且加上我畫圈的,還需要加上“response.setCharacterEncoding("UTF-8");“
即可