java中URLencode、URLdecode及Base64加解密轉(zhuǎn)換
一、URLencode、URLdecode
// 將application/x-www-from-urlencoded字符串轉(zhuǎn)換成普通字符串 String keyWord = URLDecoder.decode("%E4%BD%A0%E5%A5%BD", "utf-8"); System.out.println(keyWord); //輸出你好 // 將普通字符創(chuàng)轉(zhuǎn)換成application/x-www-from-urlencoded字符串 String urlString = URLEncoder.encode("你好", "utf-8"); //輸出%E4%BD%A0%E5%A5%BD System.out.println(urlString);
二、Base64加解密
Base64 base64 = new Base64(); String encodeText = base64.encodeToString("123456");//加密 String decodeText = base64.decode(encodedText), "UTF-8");//解密
三、高效方法:
final Base64.Decoder decoder = Base64.getDecoder(); final Base64.Encoder encoder = Base64.getEncoder(); final String text = "字串文字"; final byte[] textByte = text.getBytes("UTF-8"); //編碼 final String encodedText = encoder.encodeToString(textByte); System.out.println(encodedText); //解碼 System.out.println(new String(decoder.decode(encodedText), "UTF-8"));
四、Java 8之后的作法
Java 8的java.util套件中,新增了Base64的類別,可以用來處理Base64的編碼與解碼,用法如下:
final Base64.Decoder decoder = Base64.getDecoder(); final Base64.Encoder encoder = Base64.getEncoder(); final String text = "字串文字"; final byte[] textByte = text.getBytes("UTF-8"); //編碼 final String encodedText = encoder.encodeToString(textByte); System.out.println(encodedText); //解碼 System.out.println(new String(decoder.decode(encodedText), "UTF-8"));
與sun.mis c套件和Apache Commons Codec所提供的Base64編解碼器來比較的話,Java 8提供的Base64擁有更好的效能。實際測試編碼與解碼速度的話,Java 8提供的Base64,要比sun.mis c套件提供的還要快至少11倍,比Apache Commons Codec提供的還要快至少3倍。因此在Java上若要使用Base64,這個Java 8底下的java .util套件所提供的Base64類別絕對是首選!
到此這篇關(guān)于java中URLencode、URLdecode及Base64加解密轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)java中URLencode、URLdecode及Base64加解密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot構(gòu)建RESTful API的實現(xiàn)示例
本文主要介紹了SpringBoot構(gòu)建RESTful API的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05在JPA中criteriabuilder使用or拼接多個like語句
這篇文章主要介紹了在JPA中criteriabuilder使用or拼接多個like語句,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12struts2標(biāo)簽總結(jié)_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細總結(jié)了struts2標(biāo)簽的使用方法,和學(xué)習(xí)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09Java關(guān)鍵字volatile和synchronized作用和區(qū)別
這篇文章主要為大家詳細介紹了Java關(guān)鍵字volatile和synchronized的作用和區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06Java數(shù)字轉(zhuǎn)中文大寫工具類詳細代碼(拿去即用)
最近項目中用到金額轉(zhuǎn)大寫的地方,索性給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Java數(shù)字轉(zhuǎn)中文大寫工具類的相關(guān)資料,文中給出了詳細的代碼示例,需要的朋友可以參考下2024-05-05Java通過JNI調(diào)用C++動態(tài)庫的完整流程詳解
JNI(Java Native Interface),是實現(xiàn)Java/Kotlin與C/C++語言之間交互的橋梁,本文主要為大家介紹了Java通過JNI調(diào)用C++動態(tài)庫的完整流程,需要的可以參考下2025-04-04java通過Arrays.sort(int[] a)實現(xiàn)由大到小排序的方法實現(xiàn)
Java中的Arrays.sort()方法是一種內(nèi)置的排序方法,用于對數(shù)組進行排序,本文就來介紹一下java中的Arrays.sort()排序方法的用法,具有一定的參考價值,感興趣的可以了解一下2023-12-12