Java IDN 转换的德语 Eszett "ß"



我遇到了转换包含德语Eszett "ß"的域名的问题,通常我使用java IDN类来做到这一点,但它并没有像预期的那样在这个特定的情况下工作。

String domainName = "faß.de";
String expectedAsciiDomainName = "xn--fa-hia.de";
if (expectedAsciiDomainName.equals(IDN.toASCII(domainName))) {
System.out.println("Cool");
} else {
System.out.println("Not cool");
}

知道为什么它不起作用吗?由于

我看到在PHP中有一个非过渡处理IDN转换的选项,它工作得很好:

echo idn_to_ascii('faß.de', IDNA_NONTRANSITIONAL_TO_ASCII) . PHP_EOL; // return xn--fa-hia.de

是否有办法在Java上做同样的事情?

我终于找到了这个库:https://github.com/unicode-org/icu(作为java类IDN)。

使用IDNA2003代替IDNA2008。

最新更新