tomcat配置url跳轉(zhuǎn) 如何解決Http請(qǐng)求參數(shù)中加號(hào)變空格問(wèn)題?
如何解決Http請(qǐng)求參數(shù)中加號(hào)變空格問(wèn)題?英文和中文的HTTP請(qǐng)求參數(shù)加號(hào)是進(jìn)行URL編碼的,因?yàn)樵贖TTP請(qǐng)求參數(shù)中,加號(hào)是空格的替代字符(因?yàn)榭崭袷荋TTP協(xié)議URL的非法字符),所以當(dāng)您的請(qǐng)求參
如何解決Http請(qǐng)求參數(shù)中加號(hào)變空格問(wèn)題?
英文和中文的HTTP請(qǐng)求參數(shù)加號(hào)是進(jìn)行URL編碼的,因?yàn)樵贖TTP請(qǐng)求參數(shù)中,加號(hào)是空格的替代字符(因?yàn)榭崭袷荋TTP協(xié)議URL的非法字符),所以當(dāng)您的請(qǐng)求參數(shù)中出現(xiàn)加號(hào)時(shí),它將被理解為空格。解決方案是對(duì)加號(hào)進(jìn)行編碼。URL編碼方法是將需要轉(zhuǎn)換的字符轉(zhuǎn)換為十六進(jìn)制形式的英文百分號(hào)加號(hào)字符。例如,除了加號(hào)外,空格還可以表示為20,這是空格的十六進(jìn)制形式。
為什么url中的空格要做轉(zhuǎn)換呢?
這是URL編碼的表示。對(duì)于每個(gè)字節(jié),它可以由兩個(gè)十六進(jìn)制值%表示,后跟ASCII碼:根據(jù)URL編碼,URL中的空格是20,因此URL中的空格是
javascript傳遞參數(shù)中帶加號(hào)自動(dòng)變成了空格?
第一個(gè)參數(shù)
“MTu離開(kāi)編輯.aspx?id=“”d“”mpeditstate&;mpeditstate=1“
到
”MTu離開(kāi)編輯.aspx?id=“d”&editstate=1“
少一個(gè)加號(hào)
再說(shuō)一遍,URL參數(shù)的參數(shù)值不需要引號(hào),不管是字符串還是數(shù)字,中間用一個(gè)&;連接代替兩個(gè)
如何解決Http請(qǐng)求參數(shù)中加號(hào)變空格問(wèn)題?
bybillsoate
錯(cuò)誤原因:
我沒(méi)有深入分析原因說(shuō)起來(lái),我經(jīng)歷了幾個(gè)編解碼標(biāo)準(zhǔn)前后傳輸不同,造成了加號(hào)、空格等字符錯(cuò)誤。
簡(jiǎn)單的解決方案:
在這種情況下,一個(gè)快速的解決方案是將參數(shù)中的所有加號(hào)“”替換為“+”
(也許這種方法不好,它應(yīng)該能夠在傳輸前以某種格式對(duì)數(shù)據(jù)進(jìn)行編碼,并在獲取數(shù)據(jù)時(shí)進(jìn)行解碼。)