Java 德语 Eszett“ß”的 IDN 转换

Java IDN Conversion of the german Eszett "ß"

我在转换包含德语 Eszett“ß”的域名时遇到问题,通常我使用 java IDN class 来完成此操作,但它无法按预期工作具体案例

        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 class IDN.toASCII 使用 IDNA2003 而不是 IDNA2008)效果很好...