2016-07-01 5 views
0

私は、AntiXssEncoder.UrlEncodeを使用してクエリ文字列パラメータに値をエンコードしています。スペースは%20としてエンコードされていますが、代わりにプラス記号を使用します。AntiXssEncoder.UrlEncodeを使用している場合、スペースの代わりに%20の代わりに+を使用する最も良い方法

結果の文字列に.Replace( "%20"、 "+")を呼び出すよりも良い方法がありますか?

+0

なぜ? %20が標準のURLエンコーディングです...すべてのUrlDecodeはそれをaにも変換します。 +のURLエンコードも%2Bです。 –

+0

@AustinFrenchこれは私の会社が好むもので、[私が正しければプラス記号も受け入れ可能な標準です。](http://stackoverflow.com/questions/1211229/in-a-url-should-spaces-be) -encoded-using-20-or/1211261#1211261) –

+0

これはクエリ文字列ですが、すべてのデコーダが正しく処理するわけではありません。 インターオペラビリティ%20に依存するAPIまたはWebサービスの方が依然として優れている場合。 すべてのベストプラクティスが厳密に制御されている場合は、正規表現または文字列置換が機能します。 AntiXssEncoderはrawモードなどを持っていないようです。 –

答えて

0

独自のHtmlHelperクラスを作成することで簡単にこれを行うことができます。このような単純な

何かが十分であろう:

public static class CustomHtmlHelpers 
{ 
    public static string UrlEncode(string url) 
    { 
     return url.Replace(" ", "+"); 
    } 
} 

そして、ちょうどこのようにそれを使用します。

CustomHtmlHelpers.UrlEncode("bla bla bla"); 
関連する問題