ホームページ > ウェブフロントエンド > htmlチュートリアル > Andorid_html/css_WEB-ITnoseのHTML形式データをデコードする

Andorid_html/css_WEB-ITnoseのHTML形式データをデコードする

WBOY
リリース: 2016-06-24 11:39:54
オリジナル
1416 人が閲覧しました

WebView は、Android 開発でよく使用されるコンポーネントの 1 つで、Web ページのデータを直接渡すことができます。また、ロードされたコンテンツは、js インタラクション、ロードされた Web ページのリンク アドレス情報の取得など、WebView の関連メソッドを通じて処理できます。今日、開発中にWebViewを使用してWebページのデータをロードする小さな機能に遭遇しました。Webページには特定の製品をクリックして、アプリの製品詳細ページにアクセスします。 WebViewClient (WebView view, String url) メソッドで shouldOverrideUrlLoading を使用して、URL 固有の情報を取得して処理します。たとえば、特定の文字のデータの一部をインターセプトしたい場合、処理方法は次のようになります。

@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=" Text

int length = "?method=search¶meter=".length();
int Index = url.indexOf("?method=search¶meter="); を取得します。
url = URLDecoder.decode(url);//データのトランスコーディング
String keyWord = url.substring(index+length);//インターセプト操作
バンドルbundle = new Bundle();
Bundle.putString("categoryName", keyWord );
mMainActivity.showActivity(activity, XX.class,bundle );//インターセプトしたデータを指定したページに転送します
return true;

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

上記の赤いテキストは最初は追加されておらず、インターセプトされた文字は%や文字などで構成される長い文字列であり、必要な漢字ではありませんでした。後で赤いテキストを追加して取得しました。 「Lenovo Computer」など、私が欲しかった文字。

今日、私は Java API をチェックし、URLDecoder クラスについて学びました:

HTML 形式をデコードするためのユーティリティ クラス。このクラスには、application/x-www-form-urlencoded MIME 形式から文字列をデコードするための静的メソッドが含まれています。

この変換プロセスは、URLEncoder クラスで使用されるプロセスのまったく逆です。エンコードされた文字列内のすべての文字は、「a」から「z」、「A」から「Z」、「0」から「9」、および「-」、「_」、「」のいずれかであると想定されます。 。" 同様に"*"。 「%」文字は使用できますが、特別なエスケープ シーケンスの始まりとして解釈されます。

変換には次の規則が使用されます。

  • 英数字「a」〜「z」、「A」〜「Z」、「0」〜「9」は変更されません。
  • 特殊文字「.」、「-」、「*」、「_」は変更されません。
  • プラス記号「+」はスペース文字「」に変換されます。
  • は、「%xy」形式のシーケンスをバイトとして扱います。ここで、xy は 8 ビット 2 桁の 16 進表現です。次に、これらのバイト シーケンスを 1 つ以上連続して含むすべての部分文字列が、そのエンコードによってこれらの連続したバイトが生成される文字に置き換えられます。これらの文字をデコードするためのエンコード メカニズムを指定できます。指定しない場合は、プラットフォームのデフォルトのエンコード メカニズムが使用されます。
  • このデコーダには、不正な文字列を処理する 2 つの方法があります。 1 つの方法は、不正な文字を無視することです。もう 1 つの方法は、IllegalArgumentException 例外をスローすることです。デコーダが使用する正確な方法は実装によって異なります。現在使用されている主なメソッドは次のとおりです:

    decode(String s, String enc) 指定されたエンコード機構を使用して、application/x-www-form-urlencoded 文字列をデコードします。デコード後にのみ、必要な正しいデータを取得できます。

    URLDecoder に関連するクラスは URLEncoder です。このクラスには、文字列から application/x-www-form-urlencoded MIME 形式への変換が含まれています。メイン メソッド: encode(String s, String enc) 指定されたエンコード メカニズムを使用して、文字列を application/x-www-form-urlencoded 形式に変換します。

    次回そのような問題に遭遇したときには、解決方法がわかるでしょう。

    著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。

    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート