2012-12-18 29 views

回答

2

java.net.IDN似乎要做的伎俩。从我的Scala控制台:

scala> java.net.IDN.toUnicode("xn--9dbne9b.com") 
res0: java.lang.String = שלום.com 

请注意,它适用于主机名,而不是URL。所以你必须先剥离/提取http://协议。

快速浏览一下文档,也可以发现它在相反的方向工作。从上面(我的Unicode主机名在变量res0

scala> java.net.IDN.toASCII(res0) 
res3: java.lang.String = xn--9dbne9b.com 
+0

它的工作方向是否相反? –

+1

它的确如此。见上面 –

+0

java.net.IDN只做IDNA 2003.这已经被IDNA 2008废弃,甚至有安全问题。唯一可以找到的IDNA 2008 Java API是http://icu-project.org/apiref/icu4j/com/ibm/icu/text/IDNA.html – rockdaboot

相关问题