Punycode でいくつかの Unicode URL をエンコードしようとしています。これらの URL には、ASCII 以外の文字を含むクエリ パラメータがあります。次に例を示します。
https://en.wiktionary.org/w/index.php?title=Clœlia&printable=yes
問題は、Java で実行しようとすると、結果の URL が間違っていることです。
String link = "https://en.wiktionary.org/w/index.php?title=Clœlia&printable=yes";
link = IDN.toASCII(link);
// -> link = http://en.wiktionary.org/w/index.xn--php?title=cllia&printable=yes-hgf
このようにすると、結果の文字列は異なりますが (理由はわかりません)、間違っています。
String link = "http://en.wiktionary.org/w/index.php?title=" + IDN.toASCII("Clœlia") + "&printable=yes";
// -> link = http://en.wiktionary.org/w/index.php?title=xn--cllia-ibb&printable=yes
Chrome からアドレスをコピーしてここに貼り付けると、必要な次の URL が表示されます。
https://en.wiktionary.org/w/index.php?title=Cl%C5%93lia&printable=yes
ここで何が間違っていましたか?