第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java中編碼與解碼分別指什么?

java中編碼與解碼分別指什么?

BIG陽 2018-12-20 19:15:49
java中編碼與解碼分別指什么? 
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

java中編碼:URLEncoder.encode(strUri,"utf-8");

java中解碼碼:URLDecoder.decode(strUri,"utf-8");

java編碼和解碼          

  1. 流讀取文件,具有轉(zhuǎn)換編碼功能的有:OutputStreamWriter和InputStreamReader,

    構(gòu)造器有如:

    InputStreamReader(InputStream in, String charsetName)

    創(chuàng)建使用指定字符集的 InputStreamReader。

    OutputStreamWriter(OutputStream out, String charsetName)

    創(chuàng)建使用指定字符集的 OutputStreamWriter。

  2. 處理字符串編碼問題:

    重新對獲取的字符串進行編碼:Byte[] bytes = str.getBytes(String encodeCharsetNam);

    重新對bytes進行解碼,創(chuàng)建新的字符串對象:str = new String(Byte[] bytes,String decodeCharsetName);

    一般結(jié)合使用:str = new String(str.getBytes(String encodeCharsetName),String decodeCharsetName);

    例如:resultName=new String(username.getBytes("ISO-8859-1"),"UTF-8");

    還可以加入判斷:

    if(!Charset.forName("gbk").newEncoder().canEncode(str)){str = new Strin(str.getBytes("ISO-8859-1"),"UTF-8");}else{str = new String(str.getBytes("ISO-8859-1"),"gbk");}

  3. 處理請求參數(shù)傳遞編碼問題:

    java中編碼:URLEncoder.encode(strUri,"utf-8");

    java中解碼碼:URLDecoder.decode(strUri,"utf-8");

    js中編碼:encodeURIComponent(strUri);encodeURI(strUri);escape(str);

    js中解碼:decodeURIComponent(strUri);decodeURI(strUri);unescape(str);

  4. 補充概念

    • URI組件:主機、端口、路徑、查詢參數(shù)、片段等。

    • URI組件分隔符::/?#&[]@,冒號用于分隔協(xié)議和主機,/用于分隔主機和 路徑,?用于分隔路徑和查詢參數(shù),&用于分隔多個查詢參數(shù)等。

    • URI中的不安全字符或保留字符: ! * ‘ ( ) ; : @ & = + $ , / ? # [ ] 他們具有特殊作用,例如上面的分隔作用。

    • URI允許出現(xiàn)的字符:只允許包含英文字母(a-zA-Z)、數(shù)字(0-9)、-_.~4個特殊字符以及所有保留字符,其他字符均需要經(jīng)過編碼之后才能出現(xiàn)在Url中,比如使用保留字符的原意,而不是特殊作用。




    js向java/jsp的編碼與解碼:

    • js中編碼:encodeURI(encodeURI(strUri));decodeURIComponent(decodeURIComponent(strUri));

    • java/jsp中解碼: java.net.URLDecoder.decode(strUri,"UTF-8");

    • js中編碼兩次的問題:如果使用一次編碼,在瀏覽器地址欄里,瀏覽器認為%是個轉(zhuǎn)義字符,瀏覽器會把%與%之間的編碼值,兩位兩位取出后進行解碼。

    • 然后再傳遞給處理頁面,然后由處理頁面進行再次解碼,這樣前面就缺少了一次編碼過程,所以前面需要連續(xù)兩次編碼。




查看完整回答
反對 回復(fù) 2019-01-10
  • 1 回答
  • 0 關(guān)注
  • 819 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號