Java:URLEncoder、URLDecoder、Base64编码与解码
1. URL
主要用來(lái)http get請(qǐng)求url不能傳輸中文參數(shù)問(wèn)題。http請(qǐng)求是不接受中文參數(shù)的
1.1 URLEncoder編碼
使用指定的編碼機(jī)制將字符串轉(zhuǎn)換為 application/x-www-form-urlencoded 格式
對(duì)String編碼時(shí),使用以下規(guī)則:
1.2 URLDecoder解碼
使用指定的編碼機(jī)制對(duì) application/x-www-form-urlencoded 字符串解碼。
1.3 舉例
public static void main(String[] args) throws UnsupportedEncodingException {String str = "編碼測(cè)試+-./&=a=1*%123";String charset = "utf-8";System.out.println("urlEncoder編碼數(shù)據(jù): " + str);String encode = URLEncoder.encode(str, charset);System.out.println("編碼結(jié)果: " + encode);String decode = URLDecoder.decode(encode, charset);System.out.println("解碼結(jié)果: " + decode);}urlEncoder編碼數(shù)據(jù): 編碼測(cè)試+-./&=a=1*%123 編碼結(jié)果: %E7%BC%96%E7%A0%81%E6%B5%8B%E8%AF%95%2B-.%2F%26%3Da%3D1*%25123 解碼結(jié)果: 編碼測(cè)試+-./&=a=1*%1232. Base64
在網(wǎng)絡(luò)中傳輸數(shù)據(jù)都是使用ascii方式傳輸。對(duì)于一些圖片、視頻等數(shù)據(jù),可能就會(huì)被編碼成ascii中不可見(jiàn)部分的編碼。網(wǎng)絡(luò)中不同的路由設(shè)備處理方式不同,有可能就會(huì)把這部分?jǐn)?shù)據(jù)弄丟了。為了保證數(shù)據(jù)傳輸?shù)恼_性,可以使用Base64編碼將這些不可見(jiàn)數(shù)據(jù)編碼成可見(jiàn)數(shù)據(jù)。
由于某些系統(tǒng)中只能使用ASCII字符。Base64就是用來(lái)將非ASCII字符的數(shù)據(jù)轉(zhuǎn)換成ASCII字符的一種方法
2.1 Base64編碼
Base64.getEncoder().encode(str.getBytes())
2.2 Base64解碼
Base64.getDecoder().decode
2.3 舉例
public static void main(String[] args) throws UnsupportedEncodingException {String str = "編碼測(cè)試+-./&=a=1*%123";String charset = "utf-8";System.out.println("base64編碼數(shù)據(jù): " + str);String encode = new String(Base64.getEncoder().encode(str.getBytes()));System.out.println("編碼結(jié)果: " + encode);String decode = new String(Base64.getDecoder().decode(encode));System.out.println("解碼結(jié)果: " + decode);}base64編碼數(shù)據(jù): 編碼測(cè)試+-./&=a=1*%123 編碼結(jié)果: 57yW56CB5rWL6K+VKy0uLyY9YT0xKiUxMjM= 解碼結(jié)果: 編碼測(cè)試+-./&=a=1*%123總結(jié)
以上是生活随笔為你收集整理的Java:URLEncoder、URLDecoder、Base64编码与解码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据竞赛:如何小号作弊
- 下一篇: Debug shell: Syntax