1

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

也就是说,将文化特定字符替换为可在 url 中使用的字符。

使用 .Net 和 C#

请帮我 :)

/安德烈亚斯

4

3 回答 3

0

不要把事情复杂化。:)

要么使用正则表达式,要么简单地使用String.Replace

于 2010-04-09T09:30:13.823 回答
0

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

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

如果“url-friendly”并不意味着漂亮,您还可以使用 HttpUtility.UrlEncode,它会生成“kn%c3%a6+som+g%c3%b8r”。

于 2010-04-09T10:30:44.383 回答
0

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

我有一个非常相似的问题,尽管是文件名而不是 URL。主要问题似乎是没有标准的方法来要求“最好的 ASCII 替换 ø”,因此即使您可以找到所有不需要的字符,也很难自动插入哪个替换。

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

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

于 2010-04-09T10:49:36.000 回答