Ruby конвертирует домен IDN из Punycode в Unicode - PullRequest
5 голосов
/ 01 июня 2011

Я пишу приложение на Rails, которое должно преобразовать доменное имя IDN из Punycode в его эквивалент Unicode. Я попытался установить idn gem , который имеет привязки к GNU LibIDN, но он не скомпилирует нативный код. Очевидно, другие имеют такую ​​же проблему с Ruby 1.9.x.

Я также пробовал чистый Ruby SimpleIDN gem , но я бы предпочел что-то нативное.

Ответы [ 2 ]

11 голосов
/ 10 марта 2012

Попробуйте simpleidn gem . Работает с Ruby 1.8.7 и 1.9.2.

Отредактируйте свой Gemfile:

gem 'simpleidn'

тогда вы можете ввести команду следующим образом:

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

SimpleIDN.to_ascii("møllerriis.com")
=> "xn--mllerriis-l8a.com"
3 голосов
/ 01 июня 2011

Упс - похоже, я нашел способный ответ вскоре после публикации (извините).В разделе отчетов об ошибках на странице проекта RubyForge есть тонко размещенный патч от 09/2010.Добавление этого в мой Gemfile теперь позволяет мне использовать библиотеку idn:

gem 'idn', '~> 0.0.2', :git => 'git://github.com/mihu/idn'

Жаль, что гем, по-видимому, заброшен: /

...