Ruby将IDN域从Punycode转换为Unicode

Abe*_*ker 6 ruby unicode ruby-on-rails idn ruby-on-rails-3

我正在编写一个Rails应用程序,需要将来自Punycode的IDN域名转换为其Unicode等价物.我尝试安装绑定到GNU LibIDN 的idn gem,但它不会编译本机代码.显然其他人与Ruby 1.9.x有同样的问题.

我也尝试过纯Ruby SimpleIDN gem,但我更喜欢原生的东西.

小智 11

试试simpleidn gem.它适用于Ruby 1.8.7和1.9.2.

编辑你的Gemfile:

gem 'simpleidn'
Run Code Online (Sandbox Code Playgroud)

然后你可以输入如下命令:

SimpleIDN.to_unicode("xn--mllerriis-l8a.com")
=> "møllerriis.com"

SimpleIDN.to_ascii("møllerriis.com")
=> "xn--mllerriis-l8a.com"
Run Code Online (Sandbox Code Playgroud)