日本語ドメインでのjava.net.UnknownHostException
目次
スポンサードリンク
日本語ドメインとは
国際化ドメインとも呼ばれる。インターネットで使われるドメイン名にアルファベットや数字といったASCII文字以外に漢字、アラビア文字、キリル文字、ギリシア文字などUnicode文字を使えるようにする仕組み。 日本語であれば日本語ドメイン名とも呼ばれる。
例えば、日本語.jpなど。
DNSサーバやWebサーバと実際に通信する際には、Punycodeと呼ばれる形式にエンコード、デコードして処理を行う。
Unicode:http://日本語.jp
Punycode:http://xn--wgv71a119e.jp/
Unicodeに変換する際の仕様は http://www.ietf.org/rfc/rfc3491.txt
Punycodeに変換する際の仕様は http://www.ietf.org/rfc/rfc3492.txt
Javaで変換する場合は、java.net.IDNクラスを使用する。
https://docs.oracle.com/javase/8/docs/api/index.html
public class TestIDN {
public static void main(String[] args) {
try {
System.out.println(java.net.IDN.toASCII("日本語.jp"));
System.out.println(java.net.IDN.toUnicode("xn--wgv71a119e.jp"));
} catch (IllegalArgumentException e) {
// toASCII関数では、入力文字列がRFC 3490の仕様に準拠していない場合、IllegalArgumentExceptionが発生する
}
}
}
Search
Recent Posts
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法
- RHEL系Linuxでリポジトリを一覧表示するコマンド(dnf repolist)