引言
今天在工作過程中遇到一個(gè)很奇怪的問題:
同樣的中文傳參在PC端瀏覽器中新的頁面接受正常税朴,
但是測試人員在測試移動(dòng)端時(shí)卻發(fā)現(xiàn)中文亂碼回季。
google,百度了一段時(shí)間,一直沒有找到問題的原因正林。
(如果你知道原因也希望你能告訴我泡一,謝謝~)
雖說沒有找到為什么會(huì)造成這樣不一致,但是還是解決了觅廓。
利用Global對象的encodeURI()和encodeURIComponent()方法鼻忠,以及其對應(yīng)的decodeURI()、decodeURIComponent()方法。
encodeURI()
此函數(shù)可把字符串作為 URI 進(jìn)行編碼帖蔓,
此方法接收一個(gè)字符串URIstring矮瘟,含有 URI 或其他要編碼的文本,
返回值為URIstring 的副本塑娇,其中的某些字符將被十六進(jìn)制的轉(zhuǎn)義序列進(jìn)行替換澈侠。
提示:如果 URI 組件中含有分隔符,
比如 ? 和 #埋酬,則應(yīng)當(dāng)使用 encodeURIComponent() 方法分別對各組件進(jìn)行編碼哨啃。
encodeURIComponent()
此函數(shù)可把字符串作為 URI 組件進(jìn)行編碼,
此方法接收一個(gè)字符串URIstring写妥,含有 URI 組件或其他要編碼的文本拳球,
返回值為URIstring 的副本,其中的某些字符將被十六進(jìn)制的轉(zhuǎn)義序列進(jìn)行替換珍特。
提示:請注意 encodeURIComponent() 函數(shù) 與 encodeURI() 函數(shù)的區(qū)別之處祝峻,
前者假定它的參數(shù)是 URI 的一部分(比如協(xié)議、主機(jī)名扎筒、路徑或查詢字符串)莱找,
因此 encodeURIComponent() 函數(shù)將轉(zhuǎn)義用于分隔 URI 各個(gè)部分的標(biāo)點(diǎn)符號。
decodeURI()
此函數(shù)可對 encodeURI() 函數(shù)編碼過的 URI 進(jìn)行解碼嗜桌,
參數(shù)為一個(gè)字符串URIstring宋距,含有要解碼的 URI 或其他要解碼的文本,
返回值為URIstring 的副本症脂,其中的十六進(jìn)制轉(zhuǎn)義序列將被它們表示的字符替換
decodeURIComponent()
此函數(shù)可對 encodeURIComponent() 函數(shù)編碼的 URI 進(jìn)行解碼,
參數(shù)為一個(gè)字符串淫僻,含有編碼 URI 組件或其他要解碼的文本诱篷,
返回值為URIstring 的副本,其中的十六進(jìn)制轉(zhuǎn)義序列將被它們表示的字符替換雳灵。