2012-12-18 27 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

相關問題