我需要一些功能来以url友好的格式制作以下字符串: “knæsomår”应该是“kna-som-gor”
即将文化特定字符替换为可在网址中使用的字符。
使用.Net和C#
请帮帮我:)。
/安德烈亚斯
答案 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;过滤掉装饰器并保留正常字符的部分)。