關於URLEncoder的編碼和URLDecode解碼

來源:互聯網
上載者:User

      在我們開發中,很多時候會遇見各種編碼亂碼的問題,其實這都是編碼不一致的問題,如果你懂得了關於URLEncoder的編碼和URLDecode解碼,那麼問題就會隨之消失!

下面我們看看關於編碼的代碼:

 

 

package com.zhagnke.test;import java.beans.Encoder;import java.net.URLDecoder;import java.net.URLEncoder;/** * 關於URLEncoder的編碼和URLDecode解碼 * @author spring sky * QQ 840950105 * Email vipa1888@163.com * My name:石明政 * */public class EncodeUtil {public static void main(String[] args)throws Exception {/** * 編碼 *  * 如果字元a-z A-Z 0-9 或者_ ,他們不會被編碼 */String str1 = "abcdefghijklmnopqrstyvwxyz";String str1_1 = URLEncoder.encode(str1, "utf-8");System.out.println("str1_1="+str1_1);/** * 編碼 *  * 非字元a-z A-Z 0-9 或者_ ,他們被編碼 */String str2 = "中國人民共和國";String str2_2 = URLEncoder.encode(str2, "utf-8");System.out.println("str2_2="+str2_2);System.out.println("----------------------------------");/** * 解碼 *  */URLDecoder ud = new URLDecoder();System.out.println(ud.decode(str1, "utf-8"));System.out.println(ud.decode(str2, "utf-8"));System.out.println("-----------------------------------");/** * 解碼 * 如果字元a-z A-Z 0-9 或者_,他們因為沒有編譯,所以不會被解密 * 如果是%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD,他們會被解碼為文字 */System.out.println(ud.decode(str1_1,"utf-8"));System.out.println(ud.decode(str2_2,"utf-8"));System.out.println("-----------------------------------");/** * 如果解密不是原本的字元類型(utf8-----gbk) */System.out.println(ud.decode(str1_1,"gbk"));System.out.println(ud.decode(str2_2,"gbk"));System.out.println("-----------------------------------");/** * 如果解密不是原本的字元類型(utf8-----ISO-8859-1) */System.out.println(ud.decode(str1_1,"ISO-8859-1"));System.out.println(ud.decode(str2_2,"ISO-8859-1"));}}

上面是代碼,裡面我的注釋已經寫了,如果有不明白的,可以找我,再看看運行後的效果!

 

     

str1_1=abcdefghijklmnopqrstyvwxyzstr2_2=%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD----------------------------------abcdefghijklmnopqrstyvwxyz中國人民共和國-----------------------------------abcdefghijklmnopqrstyvwxyz中國人民共和國-----------------------------------abcdefghijklmnopqrstyvwxyz涓浗浜烘皯鍏卞拰鍥�-----------------------------------abcdefghijklmnopqrstyvwxyzä¸å½äººæ°å±åå½

從上面,我們可以看出,如果編碼為非ASCII,在編碼中都會編譯為16進位的編碼,我們只需要為編譯後的16進位代碼解密就可以了!所以在生活中,如果遇見亂碼的問題,不要慌,先看看資料庫中的編碼格式是否和程式中的相一致,只有編碼一直才不會出現亂碼的情況!

學習在於積累!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.