1. 程式人生 > >解決傳遞中文引數過程中的亂碼問題

解決傳遞中文引數過程中的亂碼問題

1、從jsp中上傳中文引數到action,解決亂碼問題方法 response.setHeader("refresh","0;URL=/demo/VmListByClassNameAction.action?&className=" +    java.net.URLEncoder.encode(className,"utf-8")); 這句程式碼中,引數className是中文引數,當不encode時,在action中獲取該引數是亂碼,所以當要傳遞中文引數時,先在jsp程式碼中呼叫 java.net.URLEncoder.encode(className,"utf-8"));或者在你的jsp中使用js傳遞引數到action。 JSP的JS中:中文引數用encodeURI(encodeURI(中文引數)),需要過兩次轉碼: function show(next,id,realName){ 
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName)
); 

document.forms['f2'].submit(); 
然後在action的java程式碼中呼叫: String declassName = java.net.URLDecoder.decode(className,"UTF-8"); 進行解碼。 2、從jsp傳遞帶有中文的引數到另一個jsp中(第一個jsp中提交資料到另一jsp中,在第2個jsp中需要訪問該提交資料) 首寫這兩個jsp中,都需在<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" errorPage="" %>中設定contentType屬性值為“charset=gb2312”;
再者,在獲取提交後的中文引數之前,需要先呼叫request.setCharacterEncoding("GBK");然後通過request.getParameter("checkCode");(其中checkCode是第一個jsp中元素的id名)。 3、struts2中action的type為redirect跳轉時中文傳參亂碼問題 解決方法一: struts.xml <action name="aaction" class="com.soft.web.AAction.class">
   <result name="afterOnView">/pages/aa/aa_view.jsp</result>
   <result name="afterOnSave" type="redirect">
 <param name="location">/aaction!onView.action?am.name=${am.name}</param>
      <param name="encode">true</param>
   </result>
</action> 解決方法二: 不管是傳遞什麼引數,自己都是寫個小方法先加密然後作為引數,然後再接受端轉化就行了。比如統一轉化成base64。

相關推薦

解決傳遞中文引數過程亂碼問題

1、從jsp中上傳中文引數到action,解決亂碼問題方法 response.setHeader("refresh","0;URL=/demo/VmListByClassNameAction.action?&className=" +    java.net.URL

Tomcat'sURL傳遞中文引數亂碼解決方法!

在表單提交中文搜尋過程中,翻頁,連結都帶有關鍵字引數(注意這裡是用URL引數),此時URL必須編碼為你JSP編碼格式,下面以UTF-8為例:Keywords=中國URL=XXX.jsp?keywords=<%=URLEncode.encode("中國","uft-8")

解決前臺URL傳遞中文引數到java後臺亂碼問題

//前端js用encodeURI函式轉換例:var a = encodeURI(encodeURI(name));//後端用URLDecoder類轉換例:String name = request.getParameter("a"); System.out.println("前臺傳入引數:" + name);

jquery ajax傳遞中文引數亂碼問題及解決方案

jQuery傳遞中文引數亂碼,原因是預設的傳遞方式沒有采用UTF-8,所有我們可以在傳遞引數的時候對引數進行編碼,然後再操作,程式碼如下,紅色的程式碼為傳遞的引數,已標註 smsubmitclick = function(){   $(document).ready(func

JSP頁面通過URL傳遞中文引數出現中文亂碼解決方法

JSP頁面: var url ="AddPatrolAjax?domain="+domain.value;//domain.value含有中文 伺服器端: String domain = new Str

終結解決Java Web開發過程中文亂碼問題

網上很多關於Java Web開發過程中的中文亂碼問題,我們前端後端都設定為UTF-8的編碼,最後還是會發生亂碼問題。 1、不同瀏覽器造成的問題 2、不同版本Tomcat造成的問題 在Tomcat不同版本對編碼的預設處理於是不一樣的,Tomcat

Spring mvc解決url傳遞中文引數亂碼問題

在tomcat伺服器中,修改server.xml引數, 如<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080"

快逸報表傳遞中文引數亂碼解決

解決方法:在傳遞引數前將中文引數進行兩次編碼,jsp頁面獲取引數後對中文引數進行一次解碼,中文引數就不會變為亂碼了! 參考例子: <%@ page language="java" contentType="text/html; charset=UTF-8"   

js的url傳遞中文引數亂碼解決方案

第一部分:html <input type="button" value="編碼" class="sp-btn-blue" onclick="urlEncode()" />     <input type="button" value="解碼" class

IE7、IE8下使用escape、encodeURI傳遞中文引數亂碼的問題及解決方案

js跳轉到指定頁面,一旦escape()中文資料,瀏覽器就會終止和沒有反應。上網搜了半天始終不得解。一種說法是,escape中文之後,url中出現了%u,IE7和IE8拒絕執行。目前看來差不多是這樣的。不得已,只好使用encodeURI(),但是asp並不能接受encodeURI的中文,而是解析成亂碼。於是又

在URL傳遞中文引數傳遞失敗的解決方案

環境:Tomcat 問題描述:使用 <a> 標籤的 herf 來傳遞頁面的引數時,英文正常,中文失敗 原因分析:使用 Tomcat 在URL中傳遞引數,是通過 HTTP 報頭來傳

在jsp頁面的url連結傳遞中文引數亂碼問題

已知專案中配置如下: strust2裡面,在web.xml檔案配置瞭如下: <filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework

如何解決mysql 中文輸入cmd錯誤和亂碼問題

我建議把所有的編碼格式都變成utf8編碼, 和上面的不一樣,開啟my.ini 修改下面兩處 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 這樣的話適合開發,不易亂碼,但這裡有個問題就是c

JSP頁面通過URL傳遞中文引數出現中文亂碼問題

做專案時遇到這個問題 問題描述:通過點選這個引數名並進行跳轉control層,進行引數接受並處理。${cs.name}裡面包含中文 <a href="${pageContext.request.contextPath}/recommend_navCategory?name=${cs.n

struts2傳中文引數到action亂碼解決方法

在做專案時,由於需要表單提交時,將中文引數傳到action進行處理。雖然我的jsp與action的編碼格式都為UTF-8。但是 中文引數傳遞到action時,已然變為亂碼。於是,我找到一種決解方法。 首先,通過js將中文引數轉碼 如:var cou_year = encod

url傳遞中文引數時的轉碼與解碼

1、傳遞引數時需要使用encodeURIComponent,這樣組合的url才不會被#等特殊字元截斷。                             例如:<script language="javascript">document.write('<a href="http://

關於前臺URL傳遞中文引數到java後臺亂碼的問題

//前端js用encodeURI函式轉換 例:var a = encodeURI(encodeURI(name)); //後端用URLDecoder類轉換 例:String name = request

URL傳遞中文引數亂碼----js對url進行編碼和解碼

*** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不經過編碼直接用於 URL。 ***例如:搜尋的中文關鍵字,複製網址之後再貼上就會發現該URL已經被轉碼。 1、escape 和 unescape 原理:對除ASCII字母、數字、標點符號 @  *  _  +

JSP使用URL編碼傳遞中文引數問題的解決

     # 傳參出現亂碼一直是編寫應用程式困擾廣大程式設計師的一大難題,同樣難倒了我。這種問題,寫個編碼過濾器,有時居然不管用。在寫應用程式中,會有中文傳參的需要,如下:            #

Weblogicurl中文引數jsp頁面亂碼

解決方法讓人大吃一驚,跳轉頁面javascript頁面對url2次編碼,接受頁面就可以正常使用了,甚至不用解碼 var href="mapcall.jsp?phone2="+phones+"&name2="+names; openwin(encodeURI(encodeURI(href)));