本文章來給大家介紹關(guān)于jsp get Url請求方式中文亂碼問題解決辦法,,有需要的朋友可參考。 jsp中post方式請求一般不會亂碼,,如果亂碼加上這句:
解決辦法一
代碼如下 |
復(fù)制代碼 |
request.setCharacterEncoding("utf-8"); |
而get方式請求,,若url含非西歐編碼必然會亂碼,處理方式:
代碼如下 |
復(fù)制代碼 |
request.setCharacterEncoding("utf-8");
|
//將請求參數(shù)使用ISO-8859-1分解成字節(jié)數(shù)組,,再將字節(jié)數(shù)組解碼成字符串
代碼如下 |
復(fù)制代碼 |
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
|
解決辦法二
java.net.URLEncoder.encode()傳送字符編碼
面貼一下解決這個問題參考的文章:
使用java.net.URLEncoder.encode()可以對要傳遞的中文進(jìn)行編碼
a.在傳參數(shù)之前先把參數(shù)進(jìn)行轉(zhuǎn)碼:java.net.URLEncoder.encode(param);
取值時用語句java.net.URLDecoder.decode(param);再轉(zhuǎn)回中文
b.在你的Tomcat目錄-->conf目錄-->server.xml里找出這段:
代碼如下 |
復(fù)制代碼 |
<Connector
port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
<!--在里邊加上這個參數(shù)-->
URIEncoding="gb2312"
/> |
例如:
代碼如下 |
復(fù)制代碼 |
<%@ page contentType="text/html;charset=gb2312" %>
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("編碼的是這里","GB2312")%>">點擊這里</a>
<%
if(request.getParameter("url")!=null)
{
str=request.getParameter("url");
str=java.net.URLDecoder.decode(str,"GB2312");
str=new String(str.getBytes("ISO-8859-1"));
out.print(str);
}
%>
|
若,字符編碼為utf-8也可以實現(xiàn).或者在此段代碼中,不寫出字符編碼也可以(只寫一個參數(shù)),。
|