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を取得するための自作メソッドを紹介します。 コードをコピー
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