C# 将特定于区域性的字符转换为漂亮的URL格式
我需要一些功能以url友好格式生成以下字符串: “knæsom gør”应该是“kna som gor” 也就是说,将特定于区域性的字符替换为可以在URL中使用的字符 使用.Net和C# 请帮帮我:) /安德烈亚斯不要把事情复杂化C# 将特定于区域性的字符转换为漂亮的URL格式,c#,regex,character,culture,C#,Regex,Character,Culture,我需要一些功能以url友好格式生成以下字符串: “knæsom gør”应该是“kna som gor” 也就是说,将特定于区域性的字符替换为可以在URL中使用的字符 使用.Net和C# 请帮帮我:) /安德烈亚斯不要把事情复杂化 可以使用regexp,也可以简单地使用。您可以在此处找到一个删除变音符号的解决方案:。不过,这个解决方案对æ或ø没有帮助 也许这样就可以删除足够多的特殊字符,剩下的可以用简单的替换来翻译 如果“url友好”并不意味着漂亮,那么您还可以使用HttpUtility.Url
可以使用regexp,也可以简单地使用。您可以在此处找到一个删除变音符号的解决方案:。不过,这个解决方案对æ或ø没有帮助 也许这样就可以删除足够多的特殊字符,剩下的可以用简单的替换来翻译 如果“url友好”并不意味着漂亮,那么您还可以使用HttpUtility.UrlEncode,它生成
“kn%c3%a6+som+g%c3%b8r” 编辑:添加了可能的解决方案(文章末尾) 我有一个非常类似的问题,尽管是文件名而不是URL。主要的问题似乎是,没有标准的方法来要求“对ø的最佳ASCII替换”,因此即使您可以找到所有不需要的字符,也很难自动插入哪个替换 我发布了很多可能有用的代码。有关详细信息,请参阅
编辑:我认为这个问题的解决方案在于,它允许您迭代字符串中的子字符(Unicode代理或组合字符)。这应该可以检测和转换像å这样的东西(可以用Unicode编码为A-WITH-RING或RINGED-A;过滤掉装饰符并保留普通字符的部分)。这是一个错误的选择,因为有许多字符需要修复。以这种方式修复所有字符需要很多时间:p我仍然建议您研究正则表达式(regexp)。我相信你可以很容易地找到你可以使用的例子或已经完成的表达式。