對於Java由於默認的編碼方式是UNICODE,所以用中文也易出問題,常見的解決是
Strings2=newString(s1.getBytes(“ISO-8859-1”),”GBK”);
前三種方法是我比較常用的方法,別人的經驗告訴我:通常get方法通過改server.xml解決,
post方法通過過濾器或者設置字符集解決,嗬嗬,不知道是否可行!
1、utf8解決JSP中文亂碼問題
一般說來在每個頁麵的開始處,加入:
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
charset=UTF-8的作用是指定JSP向客戶端輸出的編碼方式為“UTF-8”
pageEncoding="UTF-8"為了讓JSP引擎能正確地解碼含有中文字符的JSP頁麵,這在LINUX中很有效
request.setCharacterEncoding("UTF-8");是對請求進行了中文編碼
有時,這樣仍不能解決問題,還需要這樣處理一下:
Stringmsg=request.getParameter("message");
Stringstr=newString(msg.getBytes("ISO-8859-1"),"UTF-8");
out.println(st);
2、Tomcat5.5中文亂碼(利用tomcat已經寫好的字符集過濾器)
1)隻要把%TOMCAT安裝目錄%/webapps/servlets-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.class文件拷到你的webapp目錄/filters下,如果沒有filters目錄,就創建一個。
2)在你的web.xml裏加入如下幾行:
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、get方式的解決辦法(修改tomcatserver.xml,但是不建議使用的說)
1)打開tomcat的server.xml文件,找到區塊,加入如下一行:
URIEncoding=”GBK”
完整的應如下:
<Connector
port="80"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
enableLookups="false"redirectPort="8443"acceptCount="100"
debug="0"connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"
/>
4、xmlHttpRequest中文問題