JS為什麼有時候要做兩次encodeURI

2021-06-21 05:39:49 字數 766 閱讀 3611

對於var url = "b.jsp?name="+u_name; 要想把中文的name傳到後台,需要對url進行一次編碼,否則是亂碼。

有時會亂碼,為什麼?

因為接收時, 直接

string paramvalue = request.getparameter(paramname);

tomcat

容器會自動解碼

encodeuri使用的是 utf-8 編碼規則來編的。如果 request.getparameter(paramname) 時,容器也按 utf-8 解的話,沒有問題。如果容器沒有按 utf-8 解的話, 結果只有乙個,就是亂碼!

容器按什麼編碼來解碼,決定於 request.setcharacterencoding(***) 或者 伺服器程式配置。如果能設定request.setcharacterencoding("utf-8")並修改伺服器配置,讓容器在解 get 提交的引數時,使用utf-8,則沒有任何問題。

不管容器用的什麼編碼,都不會有亂碼:

url1會把url中的中文編為ascii碼。

url2對url1進行再編碼,由於是對ascii碼進行編碼,在request.getparameter("name")解碼的時候,不管是按 gbk 還是 utf-8 還是 iso-8859-1 都好,都能夠正確的得到url1。

因為ascii

碼用gbk

、utf-8

、iso-8859-1

編碼的結果是相同的

lua中函式為什麼有時候可以省略」 」

lua中函式為什麼有時候可以省略 dionysoslai 906391500 qq.com 20150825 首先,看兩個問題背景 1.簡單的 print函式 print hello print hello,通常寫法是print hello print 42 not work,正確寫法是print ...

有時候,我們為什麼對陌生人態度更好?

最容易令人感到溫暖和驚喜的是陌生人,因為你對他沒有期望。最容易令人感到心寒和悲哀的是親人,因為你愛他們。八月長安 最好的我們 最近,雲樹社群裡出現了乙個這樣的熱門話題 為什麼我們總是對親密的人更苛刻?作為雲樹使用者之一的我,也在自省的過程中發現,自己對待家人親人的時候,總是會出現諸如不耐煩 嫌棄等等...

Java中為什麼有時候通過指定編碼集無法解決亂碼

toc 當我們程式設計的時候都遇到過出現亂碼的情況,這通常是使用了不匹配的編碼表導致的,這是我們可以用指定的編碼表的方式解決亂碼問題如下面 的 string str 你 byte ch gbk str.getbytes gbk system.out.println arrays.tostring c...