7
votes

Ruby Convert Domaine IDN du punycode à Unicode

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.

J'ai aussi essayé aussi le pur ruby ​​ SimpleIDN GEM , mais je préférerais quelque chose de natif.


0 commentaires

4 Réponses :


3
votes

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'


2 commentaires

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 :)



12
votes

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"


0 commentaires

0
votes

https://github.com/knu/ruby-domain_name semble avoir exactement la même fonctionnalité: xxx


0 commentaires

1
votes

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"


0 commentaires