はじめに
事前に準備する外部ライブラリ等はありません。
JavaSEに含まれるjava.net.IDNクラスを使用します。
実装例
サンプルでは、動作確認しやすいようにmainメソッドで実行できるようにしてあります。
結果だけを確認したい場合は、この記事の一番下のリンク先で使えるようにしてありますのでご覧ください。
PunycodeEncoder.java
import java.net.IDN; /** * * @author tool-taro.com */ public class PunycodeEncoder { public static void main(String[] args) { //エンコードしたい文字列 String source = "タロウ.com"; //エンコード処理 String result = IDN.toASCII(source); //標準出力 System.out.format("エンコード結果=%1$s", result); } }
動作確認
$ javac PunycodeEncoder.java $ java PunycodeEncoder $ エンコード結果=xn--gck6bth.com
環境
- 開発
- Windows 10 Pro
- JDK 1.8.0_74
- NetBeans IDE 8.1
- 動作検証
- CentOS Linux release 7.2
- JDK 1.8.0_74
上記の実装をベースにWebツールも公開しています。
Punycodeエンコード(Punycode Encode)|Web便利ツール@ツールタロウ