2010-04-09 59 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;过滤装饰器并保留正常字符的部分)。