所以,我的問題很簡單。我有一個字符串,我希望能夠在網址中使用它。很簡單,對吧?但棘手的部分是,我想要一種自定義的編碼方式。你看,我的語言充滿了é,í,ô,ä,š,č,......,你明白了。C#執行字符串自定義編碼的推薦方式
所以,讓我們說我有一個這樣的字符串:
Č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
然而,我所希望的字符串應該是這樣的(試圖讓用戶友好的網址儘可能):
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;
}
我認爲這很明顯發生了什麼事情,它工作得很好。那麼,除了字符串是不可變的,所以有相當多的不必要的內存分配正在進行。
因此,最後我得到了我的問題 - 是否有一些建議,更有效的方法呢?
你嘗試過這個http://stackoverflow.com/questions/3769457/how-can-i -remove-accent-on-a-string –
看看這裏: http://stackoverflow.com/questions/2920744/url-slugify-alrogithm-in-c – 2012-05-26 07:15:46
@RayCheng,即關於刪除變音符號,我已經實現了一個函數。我真的不需要更多的功能來做到這一點,我的工作正常。我的問題是關於另一件事 - 實現我需要的字符串的編碼格式的最佳做法是什麼。感謝評論tho ... – walther