【问题标题】:Culture specific characters to nice URL format文化特定字符到漂亮的 URL 格式
【发布时间】:2010-04-09 09:24:41
【问题描述】:

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

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

使用 .Net 和 C#

请帮帮我:)

/安德烈亚斯

【问题讨论】:

    标签: c# regex character culture


    【解决方案1】:

    不要把事情复杂化。 :)

    要么使用正则表达式,要么直接使用String.Replace

    【讨论】:

    • 这是一个糟糕的选择,因为有许多字符需要修复。以这种方式修复所有字符将花费大量时间:P
    • 那我还是建议你看看正则表达式(regexp)。我相信您可以轻松找到可以使用的示例或已完成的表达式。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      我发布了很多可能有用的代码。详情请见this StackOverflow question

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-28
        • 2018-12-29
        • 2010-10-25
        • 1970-01-01
        • 2019-06-07
        • 2012-05-02
        • 1970-01-01
        • 2011-01-07
        相关资源
        最近更新 更多