Я пытаюсь закодировать некоторые URL-адреса Юникода с помощью Punycode. Эти адреса имеют параметр запроса, который содержит не-ASCII символы, например:Punycode для параметра запроса Unicode
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
Что я здесь сделал неправильно?