所以,我的问题很简单。我有一个字符串,我希望能够在 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;
}
我认为发生了什么很明显,而且效果很好。好吧,除了字符串是不可变的,所以有很多不必要的内存分配正在进行。
所以最后我得到了我的问题——有没有推荐的、更有效的方法来做这件事?