javascript獲取URL中文參數亂碼,急!!!!!!!


Info.html?str=%d6%d0%bb%aa%c8%cb%c3%f1%b9%b2%ba%cd%b9%fa

用javascript如何獲取上面中文參數不顯示亂碼( ÖлªÈËÃñ¹²ºÍ¹ú )?

web.config已經設置如下:

    <globalization
            requestEncoding="GB2312"
            responseEncoding="GB2312"
   />

請高手指教............................

15 个解决方案

#1


在值傳遞的時候先編碼

#2


<script language="javascript" charset=GB2312">

#3


encodeURI, decodeURI

#4


晚來一步
還好樓上都沒說清楚

傳得時候,先用urlencode編碼

得到得時候,再用urldecode解碼

即可。。。

#5


沒看清楚,以為lz用C#。。。

js就用encodeURI, decodeURI 或者escape ,unescape。
區別是:
1、   傳遞參數時需要使用encodeURIComponent,這樣組合的url才不會被#等特殊字符截斷。                            

例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u= +encodeURIComponent("http://cang.baidu.com/bruce42")+">退出</a>');</script>

2、   進行url跳轉時可以整體使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

3、   js使用數據時可以使用escape

例如:搜藏中history紀錄。

4、   escape對0-255以外的unicode值進行編碼時輸出%u****格式,其它情況下escape,encodeURI,encodeURIComponent編碼結果相同。


最多使用的應為encodeURIComponent,它是將中文、韓文等特殊字符轉換成utf-8格式的url編碼,所以如果給后台傳遞參數需要使用encodeURIComponent時需要后台解碼對utf-8支持(form中的編碼方式和當前頁面編碼方式相同)

escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不編碼字符有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不編碼字符有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

#6


window.open("sss.aspx?name=escape(中文參數)");

#7


標題是"javascript獲取URL中文參數亂碼"
目的是要將亂碼解碼啊。。。

#8


mark!~

#9


對於直接地址欄輸入的中文參數 在UTF-8系統中的接收,編碼的問題. 

http://blog.csdn.net/hertcloud/archive/2007/04/24/1580836.aspx

#10


escape應該就可以了

#11


讓iis支持中文路徑

打開注冊表 找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters\FavorDBCS

將FavorDBCS的默認值1修改成0

重新啟動iis


#12


樓上幾種方法都不怎么好用
給你一個簡單的
JS的函數  調用的時候 示例 :url = url + "|||pagename=" + toUTF8(pagename) + "";
很簡單的
 function toUTF8(szInput)
        { 
             var wch,x,uch="",szRet="";
             for (x=0; x<szInput.length; x++)
             {
              wch=szInput.charCodeAt(x);
              if (!(wch & 0xFF80))
              {
               szRet += szInput.charAt(x);
              }
              else if (!(wch & 0xF000))
              {
               uch = "%" + (wch>>6 | 0xC0).toString(16) + "%" + (wch & 0x3F | 0x80).toString(16);
               szRet += uch; 
               }
              else
              {
               uch = "%" + (wch >> 12 | 0xE0).toString(16) + "%" + (((wch >> 6) & 0x3F) | 0x80).toString(16) +"%" + (wch & 0x3F | 0x80).toString(16);
               szRet += uch; 
              }
             }
             return(szRet);
            }

#13


問題還是沒有解決,,,,,

#14


是不是中文最后一個字不顯示?

#15


想不到事隔幾年,我也在為這個問題發愁

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com