最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js解決url傳遞中文參數(shù)亂碼問(wèn)題的方法詳解

 更新時(shí)間:2023年05月08日 15:09:12   作者:不愛(ài)吃糖的程序媛  
前后臺(tái)用js傳參過(guò)程中,如果是中文就容易出現(xiàn)亂碼,下面這篇文章主要給大家介紹了關(guān)于js解決url傳遞中文參數(shù)亂碼問(wèn)題的的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

場(chǎng)景復(fù)現(xiàn):

做后臺(tái)管理系統(tǒng)的時(shí)候,出現(xiàn)了一個(gè)bug:點(diǎn)擊“導(dǎo)出數(shù)據(jù)”按鈕,打開(kāi)文件里面是空的。

亂碼的url

正確的url

bug解決思路:

1.文件為空,應(yīng)該是請(qǐng)求的url路徑不對(duì),顯示一個(gè)空的模板即沒(méi)帶參數(shù),因此可以判斷是參數(shù)有誤;

2.控制臺(tái)打出url,可以看出是參數(shù)中文亂碼;

3.怎樣解決中文亂碼問(wèn)題?(大坑就在這里)

當(dāng)時(shí)我嘗試了encodeURI 和 decodeURI,以及encodeURIComponent 和 decodeURIComponent方法都沒(méi)用(一般情況下都是有效果的),后來(lái)就是在導(dǎo)出數(shù)據(jù)接口那里打印{key}、{form[key]}分別是啥,然后得出undefined,后來(lái)我嘗試加了一個(gè)value,沒(méi)想到就可以了。

思路糾錯(cuò):

我之前一直在對(duì)比這個(gè)頁(yè)面的導(dǎo)出接口,和其他頁(yè)面的導(dǎo)出接口是否寫(xiě)的一樣?結(jié)果是一樣的,而沒(méi)有去思考它這里具體的值要的是什么,因此挺花費(fèi)時(shí)間的。

url傳參中文亂碼的解決方法

1、escape 和 unescape

escape()不能直接用于URL編碼,它的真正作用是返回一個(gè)字符的Unicode編碼值。

采用unicode字符集對(duì)指定的字符串除0-255以外進(jìn)行編碼。所有的空格符、標(biāo)點(diǎn)符號(hào)、特殊字符以及更多有聯(lián)系非ASCII字符都將被轉(zhuǎn)化成%xx格式的字符編碼(xx等于該字符在字符集表里面的編碼的16進(jìn)制數(shù)字)。比如,空格符對(duì)應(yīng)的編碼是%20。
escape不編碼字符有69個(gè):*,+,-,.,/,@,_,0-9,a-z,A-Z。

escape()函數(shù)用于js對(duì)字符串進(jìn)行編碼,不常用。

//跳轉(zhuǎn)頁(yè)
location.href = './test.html?'+escape('name=張三&age=18')
//接收頁(yè)
var str = unescape(location.search.substr(1));
//url顯示
'test.html?name%3D%u5F20%u4E09%26age%3D18'

2、encodeURI 和 decodeURI

把URI字符串采用UTF-8編碼格式轉(zhuǎn)化成escape各式的字符串。

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

encodeURI()用于整個(gè)url編碼。

//跳轉(zhuǎn)頁(yè)
location.href = encodeURI('./test.html?name=張三&age=18');
//接收頁(yè)
var str = decodeURI(location.search.substr(1));
//url顯示
'test.html?name=張三&age=18'

3、encodeURIComponent 和 decodeURIComponent

與encodeURI()的不同的是,“; / ? : @ & = + $ , #”,這些在encodeURI()中不被編碼的符號(hào),在encodeURIComponent()中統(tǒng)統(tǒng)會(huì)被編碼。至于具體的編碼方法,兩者是一樣。把URI字符串采用UTF-8編碼格式轉(zhuǎn)化成escape格式的字符串。

//跳轉(zhuǎn)頁(yè)
location.href = './test.html?'+encodeURIComponent('name=張三&age=18');
//接收頁(yè)
var str = decodeURIComponent(location.search.substr(1));
//url顯示
'test.html?name%3D張三%26age%3D18'

總結(jié)

到此這篇關(guān)于js解決url傳遞中文參數(shù)亂碼問(wèn)題的方法的文章就介紹到這了,更多相關(guān)js url傳遞中文參數(shù)亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript鏈?zhǔn)秸{(diào)用原理與實(shí)現(xiàn)方法詳解

    JavaScript鏈?zhǔn)秸{(diào)用原理與實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了JavaScript鏈?zhǔn)秸{(diào)用,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript鏈?zhǔn)秸{(diào)用基本原理、實(shí)現(xiàn)方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • 關(guān)于ES6字符串的擴(kuò)展詳解

    關(guān)于ES6字符串的擴(kuò)展詳解

    es6這個(gè)String對(duì)象倒是擴(kuò)展了不少方法,但是很多都是跟字符編碼相關(guān),下面這篇文章主要給大家介紹了關(guān)于ES6字符串?dāng)U展的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • javascript常用方法總結(jié)

    javascript常用方法總結(jié)

    經(jīng)常使用的一些javascript方法,今天總結(jié)了一下,以便以后查詢,有需要的小伙伴可以參考下。
    2015-05-05
  • JS設(shè)計(jì)模式之訪問(wèn)者模式的用法詳解

    JS設(shè)計(jì)模式之訪問(wèn)者模式的用法詳解

    JS訪問(wèn)者模式是一種行為型設(shè)計(jì)模式,用于將算法與對(duì)象結(jié)構(gòu)分離, 該模式允許你定義新的操作(訪問(wèn)者)而無(wú)需修改現(xiàn)有對(duì)象結(jié)構(gòu)(被訪問(wèn)者), 通過(guò)這種方式,你可以在不改變對(duì)象結(jié)構(gòu)的情況下添加新的操作,本文就給大家詳細(xì)的講講JS訪問(wèn)者模式的用法
    2023-08-08
  • 微信小程序?qū)崿F(xiàn)可拖動(dòng)懸浮圖標(biāo)的示例代碼

    微信小程序?qū)崿F(xiàn)可拖動(dòng)懸浮圖標(biāo)的示例代碼

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)可拖動(dòng)懸浮圖標(biāo)的示例代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • JavaScript對(duì)IE操作的經(jīng)典代碼(推薦)

    JavaScript對(duì)IE操作的經(jīng)典代碼(推薦)

    本篇文章主要是對(duì)JavaScript對(duì)IE操作的經(jīng)典代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-03-03
  • js實(shí)現(xiàn)各種復(fù)制到剪貼板的方法(分享)

    js實(shí)現(xiàn)各種復(fù)制到剪貼板的方法(分享)

    下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)各種復(fù)制到剪貼板的方法(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • javascript showModalDialog傳值與FireFox的window.open 父子窗口傳值示例

    javascript showModalDialog傳值與FireFox的window.open 父子窗口傳值示例

    javascript showModalDialog傳值與FireFox的window.open 父子窗口傳值示例代碼。
    2009-11-11
  • JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條代碼超簡(jiǎn)單

    JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條代碼超簡(jiǎn)單

    網(wǎng)頁(yè)進(jìn)度條能夠更好的反應(yīng)當(dāng)前網(wǎng)頁(yè)的加載進(jìn)度情況,loading進(jìn)度條可用動(dòng)畫(huà)的形式從開(kāi)始0%到100%完成網(wǎng)頁(yè)加載這一過(guò)程。代碼簡(jiǎn)單易懂,效果非常好,需要的一起學(xué)習(xí)學(xué)習(xí)吧
    2015-09-09
  • JS使用getComputedStyle()方法獲取CSS屬性值

    JS使用getComputedStyle()方法獲取CSS屬性值

    經(jīng)常會(huì)用到j(luò)s來(lái)獲取元素的CSS樣式,由于方法眾多,在下面的文章中為大家詳細(xì)整理下
    2014-04-04

最新評(píng)論

夏邑县| 辉县市| 轮台县| 常德市| 舞钢市| 漠河县| 栾川县| 香港| 文水县| 南涧| 霍州市| 德化县| 莱州市| 离岛区| 虎林市| 金坛市| 雅江县| 花莲市| 宜宾县| 正宁县| 周至县| 九龙城区| 黎城县| 山丹县| 缙云县| 芦山县| 高安市| 海盐县| 颍上县| 万源市| 洛川县| 嵊州市| 泸西县| 阳西县| 泰顺县| 新民市| 河池市| 临江市| 安国市| 邵阳县| 南乐县|