2010-04-09 66 views
1

文化特定的字符,我需要一些功能,使下面的字符串的URL友好的格式: 「knæSOM GOR」應爲「KNA-SOM-GOR」尼斯URL格式

也就是說,取代文化將特定字符轉換爲可在網址中使用的字符。

使用.NET和C#

請幫我:)

/安德烈亞斯

回答

0

不要複雜的事情。 :)

要麼使用正則表達式,要麼只是使用String.Replace

+0

這是一個不好的選擇,因爲有很多字符需要修復。這將需要很多時間來修復所有字符:P – Andreas 2010-04-09 09:31:15

+0

然後我仍然建議您查看正則表達式(regexp)。我相信您可以輕鬆找到可以使用的示例或已經完成的表達式。 – 2010-04-09 09:36:30

0

你可以在這裏找到一個解決方案,刪除變音符號:How do I remove diacritics (accents) from a string in .NET?。不過,這個解決方案並不能幫助你。

也許可以刪除足夠多的特殊字符,其餘的可以使用簡單的替換來翻譯?

如果「網址友好」並不意味着漂亮,您也可以使用HttpUtility.UrlEncode,它生成 「kn%c3%a6 + som + g%c3%b8r」。

0

編輯:添加可能的解決方案(帖子結束)。

我有一個非常類似的問題,雖然文件名稱,而不是URL。主要的問題似乎是沒有標準的方法來要求「最佳的ASCII碼替換」,所以即使你可以找到所有不需要的字符,也很難自動化插入哪個替換。

我發佈了很多可能有用的代碼。詳細信息請參見this StackOverflow question

編輯:我認爲這個問題的解決方案在於StringInfo,它允許您遍歷字符串中的子字符(Unicode代理或組合字符)。這應該能夠檢測和轉換類似的東西(可以用Unicode編碼爲A-WITH-RING或RINGED-A;過濾裝飾器並保留正常字符的部分)。