為什么要使用encodeuricomponent下硕?
1、encodeuricomponent
可把字符串作為 URI 組件進(jìn)行編碼梭姓。
該方法不會(huì)對 ASCII 字母和數(shù)字進(jìn)行編碼誉尖,也不會(huì)對這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * ’ ( ) 。
其他字符(比如 :;/???&=+$,# 這些用于分隔 URI 組件的標(biāo)點(diǎn)符號(hào))琢感,都是由一個(gè)或多個(gè)十六進(jìn)制的轉(zhuǎn)義序列替換的没咙。
2、encodeuricomponent什么時(shí)候使用:用于url作為參數(shù)傳遞的場景中使用
url當(dāng)作參數(shù)傳遞的時(shí)候,當(dāng)參數(shù)出現(xiàn)空格這樣的特殊字段,后臺(tái)只可以讀取到空格前的內(nèi)容暗甥,后面內(nèi)容丟失捉捅,造成數(shù)據(jù)讀取失敗,但是如果用encodeURIComponent()寄月,則這些特殊字符進(jìn)行轉(zhuǎn)義无牵,這樣后臺(tái)就可以成功讀取了,所以encodeURIComponent()用于url作為參數(shù)傳遞的場景中使用克懊。
3七蜘、decodeURIComponent
decodeURIComponent() 函數(shù)可對 encodeURIComponent() 函數(shù)編碼的 URI 進(jìn)行解碼橡卤。
例如:
傳參數(shù)頁面
console.log(res)
wx.navigateTo({ url: '/pages/addaddress/main?res='+res });
接收數(shù)據(jù)的頁面:
this.openId = wx.getStorageSync('openId')||'';
//看是從哪個(gè)頁面跳轉(zhuǎn)過來(獲取跳轉(zhuǎn)過來的信息)
if(this.$root.$mp.query.res){
this.res = JSON.parse(decodeURIComponent(this.$root.$mp.query.res))
console.log(this.res)
console.log(typeof this.res)
this.userName = this.res.userName;
this.telNumber = this.res.telNumber;
this.address = `${this.res.provinceName} ${this.res.cityName} ${this.res.countyName}`;
this.detailadress = this.res.detailInfo;
}
},