⑴ 為什麼js url 跳轉傳遞中文參數亂碼
就是一個正則匹配的過程,此函數可助你: function GetRequest() { var url = location.search; //獲取url中"?"符後的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for...
⑵ Js的Url中傳遞中文參數亂碼,怎麼獲取Url中參數有關問題
一:Js的Url中傳遞中文參數亂碼問題,重點:encodeURI編碼,decodeURI解碼:
1.傳參頁面
javascript代碼:<script type=」text/javascript」>// <![CDATA[
function send(){
var url = "test01.html";
var userName = $("#userName").html();
window.open(encodeURI(url + "?userName=" + userName)); }
// ]]>
</script>
2. 接收參數頁面:test02.html
<script>
var urlinfo = window.location.href;//獲取url
var userName = urlinfo.split(「?」)[1].split(「=」)[1];//拆分url得到」=」後面的參數
$(「#userName」).html(decodeURI(userName));
</script>
二:如何獲取Url「?」後,「=」的參數值:
A.首先用window.location.href獲取到全部url值。
B.用split截取「?」後的全部
C.split(「?」)後面的[1]內數字,默認從0開始計算
三:Js中escape,unescape,encodeURI,encodeURIComponent區別:
1.傳遞參數時候使用,encodeURIComponent否則url中很容易被」#」,」?」,」&」等敏感符號隔斷。
2.url跳轉時候使用,編碼用encodeURI,解碼用decodeURI。
3.escape() 只是為0-255以外 ASCII字元 做轉換工作,轉換成的 %u**** 這樣的碼,如果要用更多的字元如 UTF-8字元庫 就一定要用 encodeURIComponent() 或 encodeURI() 轉換才可以成 %nn%nn 這的碼才可以,其它情況下escape,encodeURI,encodeURIComponent編碼結果相同,所以為了全球的統一化進程,在用 encodeURIComponent() 或 encodeURI() 代替 escape() 使用
⑶ 如何解決 jsp 中url傳值的中文亂碼問題
第一步:在tomcat 的server.xml文件中設置web伺服器埠配製中加下面兩句:
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
第二步:JSP頁面編專碼用UTF-8(也可以用「gb2312",第一步與屬解碼要一至)傳值時編碼一下:
以傳遞的參數為strPar為例, 在傳遞數據前將strPar進行編碼java.net.URLEncoder.encode(strPar,"UTF-8");
第二步:解碼 在獲取數據伺服器端Action中得到的strPar進行解碼java.net.URLDecoder.decode(strPar,"UTF-8");
本人測試時傳入action中可以不解碼也正常。
舉例:
Url傳值:
<a href="myPage.jsp?strPar=<%=java.net.URLEncoder.encode("中文參數值","UTF-8")%>">點擊這里</a>
//下面是解碼
String cnStr=java.net.URLDecoder.decode(strPar,"GB2312");
⑷ JSP中URL參數傳遞得到亂碼
可以考慮使用utf-8編碼,如果是用js提交可以這樣:var url = "b.jsp?name=" +u_name;
url=encodeURI(url);
url=encodeURI(url); //寫一個不行。如果寫一個就是????號。
//寫2個,則輸出 %df%a4這中.不是用JS提交可以先用java.net.URLEncoder.encode進行編碼,再提交。
服務端獲取:
String name=request.getParameter("name");
name = java.net.URLDecoder.decode(name,"UTF-8"); //這句話一定要,因為如果不寫的 //話,編碼 就 是%E5%A6%88%System.out.println(name);
⑸ js中url傳參亂碼
如果頁面的編碼一致的話,用了URLEncoder,在servlet里不用在解碼了。。 直接獲取就可以了。
⑹ js url傳遞中文亂碼
如果單用JS話是不行的,因為JS只針對某個頁面
我剛在網上找的
-------------------------------------
a.html
<html>
<body>
<a href="b.html?tag=2">bb</a>
</body>
</html>
-----------------------------------
b.html
<html>
<script type="text/javascript">
var tag = location.search.match(/tag=(\d+)/)[1];
alert("tag:"+tag);
</script>
<body>
</body>
</html>
不過傳中文接收不到……
⑺ 如何解決js中頁面跳轉傳參中文亂碼
①.js文件中文顯示亂碼Javascript文件XX.js編輯保存時有一種編碼方案(如GBK),當打開文件的時候所用的編碼(如UTF-8)和保存時的編碼方案不一致時,則會出現中文顯示亂碼。解決方案:(1)用編輯器打開瀏覽的時候,選擇和原文件編碼(如GBK)一致的編碼方式查看,則不會出現亂碼;(2)在eclipse中的packageexplorer中選中亂碼的XX.js,右鍵菜單中選擇properties,在Textfileencoding中選擇與XX.js編輯保存時的編碼(如GBK),則可以正常顯示;②網站頁面中JavaScript中中文欄位亂碼在eclipse或者編輯器中XX.js中中文顯示正常,在頁面調用XX.js,執行後頁面結果中中文欄位顯示亂碼。解決方案:在引用XX.js的頁面上「顯示」加上XX.js文件的編碼方式,使之與XX.js文件的本身的編碼方式(如GBK)保持一致。
⑻ js 傳值url 亂碼問題
JS是UTF-8的,那你接收的文件是不是GB類型的?兩者語言不一致,導致出現亂碼。專
我剛調試完自己寫的類似ajax的一段屬JS。
ajax({
url:"http://",
method:'post',
type:"gb2312",
success:function(){...}
})
這里多了「type:gb2312」,就是告訴ajax,提交類型為非UTF-8類型,在提交的時候就可以將中文字元通過VBurlencode進行轉換。比將「中國」轉換成「%D6%D0%B9%FA」,而非escape("中文文字")。
⑼ 為什麼js url傳的中文亂碼
瀏覽器和伺服器之間的編碼格式是不同的,
要解決亂碼問題有三種辦法
如果是get請求,可以在tomcat根文件下找到一個server.xml文件
在其第65行後加上URIEncoding="UTF-8";
如果是post請求,可以通過request設置實體內容的解碼方式為UTF-8
如:req.setCharacterEncoding("UTF-8")
如果希望get和post都可以,可以在servlet接收亂碼String時,使用iso8859-1將其還原成byte再採用UTF-8將此byte轉成String
⑽ js獲取中文參數跳轉時亂碼
那不叫亂碼,而抄是url編碼,js本身就是讀取url編碼的
對於js獲取url的中文可以嘗試用escape() encodeURI() encodeURIComponent() decodeURI()
來使js停止或者轉換url編碼