HttpContext.Current.Server.UrlEncode
.NET Frameworkでしか動作しません。 ASP.NET CoreプロジェクトでURI引数をエンコードまたはデコードする方法を教えてください。
ASP.NET Core 2.0以降の場合はSystem.Net
名前空間を追加するだけです - WebUtility
クラスはSystem.Runtime.Extensions
nugetパッケージの一部として出荷され、ASP.NET Coreプロジェクトではデフォルトで参照されます。
以前のバージョンではMicrosoft.AspNetCore.WebUtilities
nugetパッケージを追加してください。
そうするとWebUtility
クラスが利用可能になります。
public static class WebUtility
{
public static string UrlDecode(string encodedValue);
public static string UrlEncode(string value);
}
System.Net.WebUtility.UrlEncode
の .Net Core SDKのバージョン2.0. にあります( ドキュメンテーションを参照 )
ASP.Net Core 2.0以降で、スペースを%20
としてエンコードする必要がある場合
+
とは対照的に。
つかいます:
Uri.EscapeDataString(someString);
あなたの時間を無駄にしないでください、私はこれらのいわゆるURLエンコーダに関するたくさんの経験を持っています、それらはすべて役に立たず、そして異なった癖があります。例えばWebUtility.UrlEncodeは "+"記号を処理しません。
URLパラメータをエンコードしたい場合は、BASE58エンコードを使用してください。アルファベット+数字のみを使用しているので、URLエンコードする必要はありません。
私はredirectを使用していますが、URL全体をエンコードするため、UrlEncodeは機能しませんでした。以下に示すように、代わりにUriHelper.Encodeを使用してこれを解決しました。
// generate url string...
return Redirect(Microsoft.AspNetCore.Http.Extensions.UriHelper.Encode(new System.Uri(url)));