在转换包含德语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上做同样的事情吗?
发布于 2021-02-26 12:54:37
我终于找到了这个库:https://github.com/unicode-org/icu (作为java类IDN.toASCII,使用IDNA2003而不是IDNA2008),它工作得非常完美.
https://stackoverflow.com/questions/66346479
复制相似问题