J'écris une application Rails qui doit convertir un nom de domaine IDN de Punycode en équivalent unicode. J'ai essayé d'installer le IDN GEM qui a des liaisons à GNU libidn, mais elle ne compilera pas le code natif. Apparemment Autres ont le même problème avec Ruby 1.9.x. P>
J'ai aussi essayé aussi le pur ruby SimpleIDN GEM , mais je préférerais quelque chose de natif. P>
4 Réponses :
whoops - on dirait que j'ai trouvé une réponse capable peu de temps après avoir posté (désolé). Il y a un patch à partir du 09/2010 dans La section Rapports de bogues de la Page Rubyforge's du projet . Ajout de cela à mon gemfile me permet maintenant d'utiliser la bibliothèque IDN:
gem 'idn', '~> 0.0.2', :git => 'git://github.com/mihu/idn'
Peut-être que vous voulez maintenir la gemme, serait bien.
@ASAAKI Je voudrais totalement, mais je suis toujours un rubis noob. Peut-être un jour :)
Essayez le SimpleIDN GEM . Cela fonctionne avec Ruby 1.8.7 et 1.9.2.
Modifier votre gemfile: P>
SimpleIDN.to_unicode("xn--mllerriis-l8a.com")
=> "møllerriis.com"
SimpleIDN.to_ascii("møllerriis.com")
=> "xn--mllerriis-l8a.com"
https://github.com/knu/ruby-domain_name semble avoir exactement la même fonctionnalité:
the DnsRuby :: Nom Code> classe Avec la méthode .punicode code> du dnsruby code> liber vous permet de convertir un domaine IDN de Unicode UTF- 8 au punycode ASCII:
Dnsruby::Name.punycode('ð³.cf')
# => "xn--en8h.cf"