日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?

發布時間:2024/7/5 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這次給大家帶來在JS中encodeURI(url)怎樣才能不出現亂碼?,在JS中使用encodeURI(url)的注意事項有哪些,下面就是實戰案例,一起來看一下。

一般情況下, 發送 encodeURIComponent(parmeName)+"="+encodeURIComponent(parmeValue);

接收時, 直接 String paramValue = request.getParameter(paramName); // 容器自動解碼.

我們知道 encodeURIComponent 使用的是 UTF-8 編碼規則來編的.

如果 request.getParameter(paramName) 時,容器也按 UTF-8 解的話,是正確的. 根本無須在客戶端

進行二次的 encodeURIComponent(...)

如果 request.getParameter(paramName),容器沒有按 UTF-8 解的話, 結果只有一個,就是亂碼!

容器按什么編碼來解碼,決定于 request.setCharacterEncoding(***) 或者 服務器程序配置.

如果你在 jsp 程序中,能夠 request.setCharacterEncoding("UTF-8"), 并且 修改服務器配置,讓容器在解 GET 提交的參數時,使用 UTF-8.

客戶端提交前不用二次編碼, 接收時,也只要直接 request.getParameter(paramName) 即可

為什么網上會有人提出在客戶端對字符串重復編碼兩次呢.

如果因為項目需要,不能指定容器使用何種編碼規則來解碼提交的參數, 比如:需要接收來自不同頁面,不地編碼的參數內容時。 (又或者是開發人員被這有點復雜的東東搞得暈頭轉向,不懂得如何正確的去做好這接收參數的工作)

這個時候,在客戶端對參數進行二次編碼,可以有效的避開“提交多字節字符”的這個棘手問題。

因為第一次編碼,你的參數內容便不帶有多字節字符了,成了純粹的 Ascii 字符串。(這里把編第一次的結果叫成 [STR_ENC1] 好了。[STR_ENC1] 是不帶有多字節字符的)

再編一次后,提交,接收時容器自動解一次 (容器自動解的這一次,不管是按 GBK 還是 UTF-8 還是 ISO-8859-1 都好,都能夠正確的得到 [STR_ENC1])

然后,再在程序中實現一次 decodeURIComponent (Java中通常使用 java.net.URLDecoder(***, "UTF-8")) 就可以得到想提交的參數的原值。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

總結

以上是生活随笔為你收集整理的js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。