ですから、私の質問はかなり単純です。文字列があり、URLで使用できるようにしたいと思います。簡単ですよね?トリッキーな部分は、しかし、私はそれをエンコードするカスタムの方法が欲しいです。ほら、私の言語はé、í、ô、ä、ľ、š、č、ť...でいっぱいです。
だから、私がこのような文字列を持っているとしましょう:
Čečenský bojovník sa pobil v košickej väzbe
HttpUtility.EncodeUrlを使用すると、次の文字列が表示されます。
%c4%8ce%c4%8densk%c3%bd+bojovn%c3%adk+sa+pobil+v+ko%c5%a1ickej+v%c3%a4zbe
ただし、希望する文字列は次のようになります(できるだけユーザーフレンドリーなURLを使用しようとします)。
cecensky-bojovnik-sa-pobil-v-kosickej-vazbe
その場合、関数EncodeUrlを使用することはできません。そこで、必要なことを正確に実行して、文字列に対して複数の操作を行う関数を自分で作成しました。
public static string EncodeForUrl(this string s)
{
string temp = s.StripDiacritics(); // one custom function
temp = temp.ToLower();
temp = temp.Trim();
temp = temp.Replace(" ", "-");
return temp;
}
何が起こっているのかは明らかで、完全にうまく機能していると思います。文字列が不変であるという事実を除いて、不必要なメモリ割り当てが非常に多く行われています。
それで、ついに私は私の質問に行き着きました-これを行うためのいくつかの推奨される、より効率的な方法はありますか?