對于Javascript傳遞中文時調試出錯解釋
作者:佚名
假期開始對Javascript傳遞的學習,首先碰到的就是環境的配置。以前學的Visual Studio2003,但并沒有怎么用。所以有一個星期的時間基本是在用實踐著.net 1.0,不知道Gates知道了,會不會有點郁悶。
如果您確定不論是您的JSP頁面還是您的Servlet都已經采取了最基本的亂碼處理方法之后,通過Javascript傳遞的中文在接受的時候調試輸出的是?的話,就試試兄弟我下面這個做法,也是跟別人學的。#t#
你可能采用的Javascript傳遞的中文參數正如:
- tempo.open("GET","Query?condition="+encodeURI(encodeURI(query))+"&kind="+kind,true);
- 或者僅僅是在頁面<head>標簽中嵌入的一小段script代碼傳遞的中文參數:
- function changefont(){//下拉列邊框變化時觸發session中的用戶默認字體發生變化
- var fontname=document.getElementById('fontname').value;
- alert(fontname);
- var url;
- url="Communicate.jsp?user2=";
- urlurl=url+'<%=user2%>';
- urlurl=url+"&user2id="+'<%=user2id%>'+"&changefontname="+encodeURI(encodeURI(fontname));
- // alert(url);
- window.location.href=url;
- }
您可能已經發現他們的一個共同點了, Javascript傳遞這就是解決問題的方法了,兄弟您可以試試,希望對您有所幫助。下面是接受部分解碼方法:
- String fontwords=request.getParameter("changefontname");//
- fontwords=java.net.URLDecoder.decode(fontwords,"utf8"); //post 傳遞的時候,一定是用utf8編碼的,url 自己可以設定
- //System.out.println(condition);
- //當調用request.getParameter()函數時,會自動進行一次URI的解碼過程,調用時內置的解碼過程會導致亂碼出現。
- 而URI 編碼兩次后,request.getParameter()函數得到的是原信息URI編碼一次的內容。再用可控的解碼函數 java.net.URLDecoder.decode()就可解出原始的正確的信息。
責任編輯:chenqingxiang
來源:
互聯網