Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby将IDN域从Punycode转换为Unicode_Ruby On Rails_Ruby_Ruby On Rails 3_Unicode_Idn - Fatal编程技术网

Ruby on rails Ruby将IDN域从Punycode转换为Unicode

Ruby on rails Ruby将IDN域从Punycode转换为Unicode,ruby-on-rails,ruby,ruby-on-rails-3,unicode,idn,Ruby On Rails,Ruby,Ruby On Rails 3,Unicode,Idn,我正在编写一个Rails应用程序,它需要将一个IDN域名从Punycode转换为其Unicode等价物。我尝试安装绑定到GNU LibIDN的,但它不会编译本机代码。显然Ruby 1.9.x也有同样的问题 我也试过纯Ruby,但我更喜欢本地的。哎哟-看起来我在发布后不久就找到了一个合适的答案(对不起)。从2010年9月开始,在本手册的bug报告部分有一个微妙的位置。现在,将其添加到我的GEM文件中可以使用idn库: gem 'idn', '~> 0.0.2', :git => 'gi

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


我也试过纯Ruby,但我更喜欢本地的。

哎哟-看起来我在发布后不久就找到了一个合适的答案(对不起)。从2010年9月开始,在本手册的bug报告部分有一个微妙的位置。现在,将其添加到我的GEM文件中可以使用idn库:

gem 'idn', '~> 0.0.2', :git => 'git://github.com/mihu/idn'
可惜的是,这颗宝石显然被抛弃了://p>试试这个。它适用于Ruby 1.8.7和1.9.2

编辑您的文件:

gem 'simpleidn'
然后可以按如下方式输入命令:

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

SimpleIDN.to_ascii("møllerriis.com")
=> "xn--mllerriis-l8a.com"
似乎具有完全相同的功能:

irb(main):018:0> SimpleIDN::Punycode.encode('axa.test')
=> "axa.test-"

irb(main):017:0> DomainName::Punycode.encode('axa.test')
=> "axa.test-"
使用lib方法的类允许您将IDN域从Unicode UTF-8转换为ASCII punycode:


Dnsruby::Name.punycode('也许你想维护宝石,那就好了。@asaaki我完全愿意,但我仍然是一个Ruby noob。也许有一天:)