使用URLEncoder、URLDecoder進行URL參數的轉碼與解碼

來源:互聯網
上載者:User

標籤:中文   get   資訊   亂碼問題   restful   sys   res   使用   .net   

url參數的轉碼與解碼

import java.net.URLDecoder;import java.net.URLEncoder;String strTest = "?=abc?中%1&2<3,4>";strTest = URLEncoder.encode(strTest, "UTF-8");System.out.println(strTest);strTest = URLDecoder.decode(strTest,"UTF-8");System.out.println(strTest);

執行結果:

%3F%3Dabc%3F%E4%B8%AD%251%262%3C3%2C4%3E
?=abc?中%1&2<3,4>

1.  問題的引出

   在Restful的服務設計中,查詢某些資訊的時候,一般的URL地址設計為: get /basic/service? keyword=曆史 , 之類的URL地址。 但是,在實際的開發和使用中,確是有亂碼情況的發生,在背景讀取keyword資訊為亂碼,無法正確讀取。

2. 亂碼是如何產生的?

 

   由於我們利用URL傳遞參數這種方式是依賴與瀏覽器環境中的,也就是說URL及URL中包含的各個key=value格式的傳遞參數索引值對參數是在瀏覽器地址欄中的處理原理處理相應編碼後傳遞至後台進行解碼的。   由於我們沒有進行任何處理,此時javascript請求URL並傳參數存在中文時(也就是說輸入框中輸入中文時),對URL的中文參數進行編碼是按照瀏覽器機制進行編碼的。此時編碼存在亂碼問題。

使用URLEncoder、URLDecoder進行URL參數的轉碼與解碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.