文化特定的字符,我需要一些功能,使下面的字符串的URL友好的格式: “knæSOM GOR”应为“KNA-SOM-GOR”尼斯URL格式
也就是说,取代文化将特定字符转换为可在网址中使用的字符。
使用.NET和C#
请帮我:)
/安德烈亚斯
文化特定的字符,我需要一些功能,使下面的字符串的URL友好的格式: “knæSOM GOR”应为“KNA-SOM-GOR”尼斯URL格式
也就是说,取代文化将特定字符转换为可在网址中使用的字符。
使用.NET和C#
请帮我:)
/安德烈亚斯
不要复杂的事情。 :)
要么使用正则表达式,要么只是使用String.Replace。
你可以在这里找到一个解决方案,删除变音符号:How do I remove diacritics (accents) from a string in .NET?。不过,这个解决方案并不能帮助你。
也许可以删除足够多的特殊字符,其余的可以使用简单的替换来翻译?
如果“网址友好”并不意味着漂亮,您也可以使用HttpUtility.UrlEncode,它生成 “kn%c3%a6 + som + g%c3%b8r”。
编辑:添加可能的解决方案(帖子结束)。
我有一个非常类似的问题,虽然文件名称,而不是URL。主要的问题似乎是没有标准的方法来要求“最佳的ASCII码替换”,所以即使你可以找到所有不需要的字符,也很难自动化插入哪个替换。
我发布了很多可能有用的代码。详细信息请参见this StackOverflow question。
编辑:我认为这个问题的解决方案在于StringInfo,它允许您遍历字符串中的子字符(Unicode代理或组合字符)。这应该能够检测和转换类似的东西(可以用Unicode编码为A-WITH-RING或RINGED-A;过滤装饰器并保留正常字符的部分)。
这是一个不好的选择,因为有很多字符需要修复。这将需要很多时间来修复所有字符:P – Andreas 2010-04-09 09:31:15
然后我仍然建议您查看正则表达式(regexp)。我相信您可以轻松找到可以使用的示例或已经完成的表达式。 – 2010-04-09 09:36:30