首先,說說jsp/servlet中的幾個編碼的作用。
在jsp/servlet中主要有以下幾個地方可以設定編碼,pageencoding="utf-8"、contenttype="text/html;charset=utf-8"、request.setcharacterencoding("utf-8")和response.setcharacterencoding("utf-8"),其中前兩個只能用於jsp中,而後兩個可以用於jsp和servlet中。
1、pageencoding="utf-8"的作用是設定jsp編譯成servlet時使用的編碼。
眾所周知,jsp在伺服器上是要先被編譯成servlet的。pageencoding="utf-8"的作用就是告訴jsp編譯器在將jsp檔案編譯成servlet時使用的編碼。通常,在jsp內部定義的字串(直接在jsp中定義,而不是從瀏覽器提交的資料)出現亂碼時,很多都是由於該引數設定錯誤引起的。例如,你的jsp檔案是以gbk為編碼儲存的,而在jsp中卻指定pageencoding="utf-8",就會引起jsp內部定義的字串為亂碼。
另外,該引數還有乙個功能,就是在jsp中不指定contenttype引數,也不使用response.setcharacterencoding方法時,指定對伺服器響應進行重新編碼的編碼。
public void dofilter(servletrequest request, servletresponse response, filterchain chain)
throws ioexception,servletexception
2、在jsp頁面中加上:
<%@ page contenttype="text/html;charset=utf-8" %>
3、修改tomcat5.0的d:\jakarta-tomcat-5.0.30\conf\server.xml
找到connector部分
加上usebodyencodingforuri="true" uriencoding="utf-8"
比如:
基於tomcat亂碼解決方案
今天又碰到中文亂碼問題了,在web的現實開發中出現亂碼的機率還是挺大的。只要在檔案本身編碼 頁面 servlet 伺服器有乙個部分沒設定一致的encoding就可能出現,這裡做下筆記記錄解決亂碼的過錯 1.檢視頁面頭部encoding,我這裡設定了utf 8 2.編輯器設定檔案編碼為utf 8 3....
JSP亂碼解決方案
一般來說,我們現在程式設計都使用的mvc三層架構體系,也就是說接收和處理資料都是在moudel servler 中完成的,所以要解決亂碼問題,也就要在這裡進行 對於post請求,一般可以用簡單的 request.setcharacterencoding gbk 來實現 也可以用 response.s...
mysql亂碼解決方案
對於mysql資料庫的亂碼問題,有兩中情況 1.mysql資料庫編碼問題 建庫時設定 2.連線mysql資料庫的url編碼設定問題。對於第乙個問題,目前個人發現只能通過重新建庫解決,建庫的時候,選擇utf 8字符集。我試過修改現有資料庫字符集為uft 8,但是根本不起作用,插入的中文仍然亂碼 中文顯...