0

JSF Web ページの URL バリデーターを作成しましたが、最初の単語 (ドットで区切られている) に非 ASCII 文字が含まれているドメインの問題に出くわしました。

次の有効なウェブサイトの URL がありhttp://testä.comます。を使用してそれをちっぽけなコードに変換すると、IDN.toASCII()無効な url: が作成されますxn--http://test-v8a.com

そうではないかhttp://xn--test-ooa.com/

de同じ無効な URL の結果を示すドイツのドメイン マネージャー DENIC でも確認しました。

https://www.denic.de/service/tools/idn-web-converter/

これは Java/RFC のバグですか、それとも何か不足していますか。

回避策

最初にプロトコルを削除すると機能します。

4

1 に答える 1

2

ドキュメントは、このメソッドがドメイン名ラベルでのみ機能することを明確にしているため、プロトコルを削除する必要があります。

ラベルは、ドメイン名の個々の部分です。RFC 3490 で定義されている元の ToASCII 操作は、単一のラベルでのみ動作します。 このメソッドは、ドメイン名のラベルが常にドットで区切られていると想定することで、ラベルとドメイン名全体の両方を処理できます。

Javadoc へのリンク: https://docs.oracle.com/javase/8/docs/api/java/net/IDN.html#toASCII-java.lang.String-int-

于 2016-06-25T01:22:08.033 に答える