0

テストから、IDN と通常のドメイン名の両方を変換しようとしているように見えます。たとえば、入力を変更する必要がない場合、punycode は入力を返すだけです。

punycode.toASCII('lancôme.com');

戻り値:

'xn--lancme-lxa.com'

punycode.toASCII('apple.com');

戻り値:

'apple.com'

これは素晴らしいように見えますが、どこかに指定されていますか? すべてをpunycodeに安全に変換できますか?

4

1 に答える 1

2

それは正しいです。Unicode 文字列を ASCII punycode に変換する手順を見ると、このプロセスでは非 ASCII 文字のみが変更されます。通常のドメインには非 ASCII 文字を含めることができないため、コンバーターが正しく実装されていれば、純粋な ASCII 文字列は変換されません。

Unicode が punycode に変換される方法について詳しくは、https: //en.wikipedia.org/wiki/Punycodeをご覧ください。

Punycode は RFC 3492: https://www.ietf.org/rfc/rfc3492.txtで指定されており、次のように明確に述べられています。

「基本コード ポイントの分離」は、拡張文字列で発生する基本コード ポイントを非常に単純かつ効率的にエンコードする方法です。単純に一度にすべてコピーされます。

したがって、拡張文字列が基本的なコード ポイントで構成されている場合は、そのままコピーされます。

于 2016-05-19T22:04:58.450 に答える