對於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中文問題