👏
[Feature #21617] URI のドメイン名に IDN をサポートするチケット
[Feature #21617] Add Internationalized Domain Name (IDN) support to URI
-
URIでドメイン名にIDNをサポートする旨のチケット -
IDNとは国際化ドメイン名 (Internationalized Domain Name)の略でドメイン名に日本語やアラビア文字などが使用できるドメイン名のこと - 現状だと以下のようなドメイン名の場合はエラーになってしまう
require "uri"
URI("https://日本語.jp/")
# => error: URI must be ascii only "https://\u65E5\u672C\u8A9E.jp/" (URI::InvalidURIError)
- こういう URI を使用する場合はサードパーティ制の外部 gem(以下は
addressableが例)を使用する必要がある
Addressable::URI.parse("https://日本語.jp/")
# => #<Addressable::URI:0xd648 URI:https://日本語.jp/>
- この機能をサポートすること自体は概ね同意が取れてるみたいなんですが実装を何に依存するのかでまだ議論が続いているみたいですね
-
libidn2のような外部ライブラリに依存するのかそれとも pure Ruby で実装するのか
-
Discussion