后端調用數據庫傳給前端頁面中文顯示為問號


寫一個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方法中不想很麻煩的進行編碼轉換,可在tomcatconfig文件夾下將 server.xml的文件中找到這段話

並且加上我畫圈的,還需要加上“response.setCharacterEncoding("UTF-8");“

即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM