最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Andorid中對HTML格式數(shù)據(jù)進行解碼_html/css_WEB-ITnose

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 16:09:31
文檔

Andorid中對HTML格式數(shù)據(jù)進行解碼_html/css_WEB-ITnose

Andorid中對HTML格式數(shù)據(jù)進行解碼_html/css_WEB-ITnose:WebView是Android開發(fā)中常用的組件之一,用來加載網(wǎng)頁數(shù)據(jù),可以直接傳入URL,也可以傳入Html格式字符等。并且我們可以通過WebView中相關(guān)方法對加載的內(nèi)容進行處理,如js交互,獲取加載的網(wǎng)頁鏈接地址信息等。今天在開發(fā)中遇到一個小功能,就是要用WebVi
推薦度:
導(dǎo)讀Andorid中對HTML格式數(shù)據(jù)進行解碼_html/css_WEB-ITnose:WebView是Android開發(fā)中常用的組件之一,用來加載網(wǎng)頁數(shù)據(jù),可以直接傳入URL,也可以傳入Html格式字符等。并且我們可以通過WebView中相關(guān)方法對加載的內(nèi)容進行處理,如js交互,獲取加載的網(wǎng)頁鏈接地址信息等。今天在開發(fā)中遇到一個小功能,就是要用WebVi

WebView是Android開發(fā)中常用的組件之一,用來加載網(wǎng)頁數(shù)據(jù),可以直接傳入URL,也可以傳入Html格式字符等。并且我們可以通過WebView中相關(guān)方法對加載的內(nèi)容進行處理,如js交互,獲取加載的網(wǎng)頁鏈接地址信息等。今天在開發(fā)中遇到一個小功能,就是要用WebView來加載一個網(wǎng)頁數(shù)據(jù),網(wǎng)頁中有很多商品,點某一商品又可進入到App中的商品詳情頁面,主要方法就是通過WebViewClient中的shouldOverrideUrlLoading(WebView view, String url)方法獲取url特定信息并進行處理。比如,我要截取特定字符中的一部分?jǐn)?shù)據(jù),處理方法如下:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
((CustomWebView) view).resetLoadedUrl();
if(url != null ){
if(url.contains("?method=search¶meter=")){//比如要判斷url中是否包括"?method=search¶meter="字符,就截取獲取"?method=search¶meter="后面的文字

int length = "?method=search¶meter=".length();
int index = url.indexOf("?method=search¶meter=");
url = URLDecoder.decode(url);//數(shù)據(jù)轉(zhuǎn)碼
String keyWord = url.substring(index+length);//截取操作
Bundle bundle = new Bundle();
bundle.putString("categoryName", keyWord);
mMainActivity.showActivity(activity, XX.class,bundle);//把截取到的數(shù)據(jù)傳入到指定頁面中
return true;

}else
//TODO
return true;
}
}
return false;
}

開始沒有加入上面紅色文字,結(jié)果截取到的字符是一串由%和字母等組成的一長串字符,并非我想要的中文漢字,后來加入紅色文字,就獲取到了想要的字符,如“聯(lián)想電腦”。

今天查了下java的api,了解了一下URLDecoder這個類:

HTML 格式解碼的實用工具類。該類包含了將 String 從 application/x-www-form-urlencoded MIME 格式解碼的靜態(tài)方法。

該轉(zhuǎn)換過程正好與 URLEncoder 類使用的過程相反。假定已編碼的字符串中的所有字符為下列之一:"a" 到 "z"、"A" 到 "Z"、"0" 到 "9" 和 "-"、"_"、"." 以及 "*"。允許有 "%" 字符,但是將它解釋為特殊轉(zhuǎn)義序列的開始。

轉(zhuǎn)換中使用以下規(guī)則:

  • 字母數(shù)字字符 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不變。
  • 特殊字符 "."、"-"、"*" 和 "_" 保持不變。
  • 加號 "+" 轉(zhuǎn)換為空格字符 " "。
  • 將把 "%xy" 格式序列視為一個字節(jié),其中 xy 為 8 位的兩位十六進制表示形式。然后,所有連續(xù)包含一個或多個這些字節(jié)序列的子字符串,將被其編碼可生成這些連續(xù)字節(jié)的字符所代替。可以指定對這些字符進行解碼的編碼機制,或者如果未指定的話,則使用平臺的默認(rèn)編碼機制。
  • 該解碼器處理非法字符串有兩種可能的方法。一種方法是不管該非法字符,另一種方法是拋出 IllegalArgumentException 異常。解碼器具體采用哪種方法取決于實現(xiàn)?,F(xiàn)在主要用的方法是:

    decode(String s, String enc) 使用指定的編碼機制對 application/x-www-form-urlencoded 字符串解碼。解碼后才能獲取到我們想要的正確數(shù)據(jù)。

    與URLDecoder的類是URLEncoder:該類包含了將 String 轉(zhuǎn)換為 application/x-www-form-urlencoded MIME 格式。主要方法:encode(String s, String enc) 使用指定的編碼機制將字符串轉(zhuǎn)換為 application/x-www-form-urlencoded 格式。

    下次遇到這樣的問題就知道怎么解決了。

    版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Andorid中對HTML格式數(shù)據(jù)進行解碼_html/css_WEB-ITnose

    Andorid中對HTML格式數(shù)據(jù)進行解碼_html/css_WEB-ITnose:WebView是Android開發(fā)中常用的組件之一,用來加載網(wǎng)頁數(shù)據(jù),可以直接傳入URL,也可以傳入Html格式字符等。并且我們可以通過WebView中相關(guān)方法對加載的內(nèi)容進行處理,如js交互,獲取加載的網(wǎng)頁鏈接地址信息等。今天在開發(fā)中遇到一個小功能,就是要用WebVi
    推薦度:
    標(biāo)簽: android html css
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top