【问题标题】:Convert Å Ä Ö to A A O [duplicate]将 Å Ä Ö 转换为 A A O [重复]
【发布时间】:2011-07-30 02:14:37
【问题描述】:

可能重复:
How do I replace accented Latin characters in Ruby?

有没有一种简单的方法可以将任何不等于 a-z 的字母转换为 a-z?

例如,我想将Ü 转换为UÖ 转换为O 等等,我不关心大小写字母。

这是我到目前为止所做的。

{"ä" => "a", "å" => "a", "ö" => "o"}.each do |from, to|
  string.gsub!(/#{from}/i, to)
end

但我不想指定每个单词。

有什么想法吗?

【问题讨论】:

  • 我收回了一半的评论。显然那里的解决方案使用了 Rails 方法。

标签: ruby


【解决方案1】:

对于比String#tr 更通用的解决方案,请查看 stringex gem。 http://github.com/rsl/stringex

【讨论】:

    【解决方案2】:

    使用tr 方法。

     string.tr!( "äåö", "aao" );
    

    【讨论】:

    • 我想使用 Unicode 规范化并去掉变音符号会更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2012-11-12
    • 2013-02-26
    相关资源
    最近更新 更多