将特定字符标记为漂亮的URL格式

时间:2010-04-09 09:24:41

标签: c# regex character culture

我需要一些功能来以url友好的格式制作以下字符串: “knæsomår”应该是“kna-som-gor”

即将文化特定字符替换为可在网址中使用的字符。

使用.Net和C#

请帮帮我:)。

/安德烈亚斯

3 个答案:

答案 0 :(得分:0)

不要让事情复杂化。 :)

使用正则表达式,或只使用String.Replace

答案 1 :(得分:0)

您可以在此找到解决变音符号的解决方案:How do I remove diacritics (accents) from a string in .NET?。但是,这个解决方案对æ或ø没有帮助。

也许这会删除足够的特殊字符,其余的可以使用简单的替换进行翻译?

如果“url-friendly”并不意味着漂亮,你也可以使用HttpUtility.UrlEncode,它会产生 “KN%C3%A6 + SOM +克%C3%B8R”。

答案 2 :(得分:0)

编辑:添加了可能的解决方案(帖子结尾)。

我有一个非常类似的问题,虽然是文件名而不是URL。主要的问题似乎是没有标准的方法来要求“ø的最佳ASCII替换”,所以即使你可以找到所有不需要的字符,也很难自动插入哪个替代品。

我发布了很多可能有用的代码。有关详细信息,请参阅this StackOverflow question

编辑:我认为这个问题的解决方案在于StringInfo,它允许您在字符串中迭代子字符(Unicode代理或组合字符)。这应该可以检测和转换像å这样的东西(可以用Unicode编码为A-WITH-RING或RINGED-A;过滤掉装饰器并保留正常字符的部分)。