ホームページ >ウェブフロントエンド >jsチュートリアル >jsのエスケープに対応したC#デコード関数 UrlDecode_基礎知識

jsのエスケープに対応したC#デコード関数 UrlDecode_基礎知識

WBOY
WBOYオリジナル
2016-05-16 17:46:231187ブラウズ

js のエスケープに対応する C# のデコード関数 System.Web.HttpUtility.UrlDecode(s) //エンコーディングに注意
注意すべき点はいくつかあります:
1. HttpUtility.UrlEncode、HttpUtility.UrlDecode は静的メソッドです。 Server.UrlEncode、Server.UrlDecode はインスタンス メソッドです。
2. Server は HttpServerUtility クラスのインスタンスであり、System.Web.UI.Page のプロパティです。
3. HttpUtility.UrlEncode でエンコードされた文字列は、Server.UrlEncode でエンコードされた文字列オブジェクトとは異なります。
例:

コピー コード コードは次のとおりです。

string url="http://search.99read.com/index.aspx?book_search=all&main_str=西洋尔"; Response.Write(HttpUtility.UrlEncode(url));
Response.Write("
");
Response.Write(Server.UrlEncode(url)); >
出力結果は
です:
http://search.99read.com/index.aspx?book_search=all&main_str=AOMIER
http://search.99read.com/index.aspx ?book_search=all&main_str=���GG� 原因
: Server.UrlEncode のエンコード方式は、ローカル プログラムによって設定されたエンコード方式に従ってエンコードされますが、HttpUtility.UrlEncode はデフォルトのエンコード方式です。 .net UTF-8 形式でエンコードされます。
プログラムを変更する場合:


コードをコピーします
コードは次のとおりです: string url1=" http://search.99read.com/index.aspx?book_search=all&main_str=参照尔"; Response.Write(HttpUtility.UrlEncode(url1,System.Text.Encoding.GetEncoding("GB2312) "))) ;
Response.Write("
");
Response.Write(Server.UrlEncode(url1));



出力結果
:
http://search.99read.com/index.aspx?book_search=all&main_str=���GG�
http://search.99read.com/index.aspx?book_search= all&main_str=�� 🎜>3. 他のシステムから渡された URL は、他のエンコード方法を使用してエンコードされる場合があります。 指定したエンコード形式でQueryStringを取得するための自作メソッドを紹介します。



コードをコピー
コードは次のとおりです。 public string GetNonNullQueryString(string key,Encoding エンコード) ) { //System.Collections.Specialized および System.Text 名前空間の参照
string stringValue;
System.Collections.Specialized.NameValueCollection encodeQueryString;
encodingQueryString = HttpUtility.ParseQueryString(Request.Url.Query,encoding);
//'内部のキーは、送信したパラメータのキーです。
return encodingQueryString[key] != null ? ].Trim() : "";
}



呼び出し
:
string url = GetNonNullQueryString("url",Encoding.UTF8).Trim() ;
---------------------------------------------- -- --------------------------------------------------

JavaScript におけるエスケープ、encodeURI、encodeURIComponent の違いJS エンコード テキストには、escape、encodeURI、encodeURIComponent の 3 つの関数と、対応する 3 つのデコード関数 (unescape、decodeURI、decodeURIComponent 1) が含まれます。パラメーターを渡すときに encodeURIComponent を使用して、結合された URL が # などの特殊文字で切り捨てられないようにします。
例:
2. URL ジャンプを実行するときに encodeURI 全体を使用できます
例: 場所。 href=encodeURI ("http://cang.baidu.com/do/s?word=Baidu&ct=21");
3. js でデータを使用する場合はエスケープを使用できます
[Huoho.Com エディター]
例: コレクション内の履歴レコード。
4.escapeが0-255以外のUnicode値をエンコードした場合、%u****形式で出力されます。それ以外の場合、escape、encodeURI、encodeURIComponentのエンコード結果は同じになります。
最も一般的に使用されるのは、中国語、韓国語、その他の特殊文字を utf-8 形式の URL エンコードに変換する encodeURIComponent です。そのため、encodeURIComponent を使用してパラメータをバックグラウンドに渡す必要がある場合は、サポートするためにバックグラウンド デコードが必要です。 utf-8 (形式: エンコード方法は現在のページのエンコード方法と同じです)
エスケープでエンコードされていない文字は 69 文字あります: *、-、.、/、@、_、0 -9、a-z、A-Z
encodeURI でエンコードされない文字が 82 文字あります:!,#,$,&,',(,),*, ,,,-,.,/,:,;, =,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent は 71 文字をエンコードしません: !、'、(,)、*、-、.、_、~、0-9、a-z 、A-Z
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Jqueryはラジオボタンのクリックイベントをバインドします。次の記事:Jqueryはラジオボタンのクリックイベントをバインドします。

関連記事

続きを見る