まず最初に:
すべてのドメイン名を IDNA バージョンに変換した後、複数のドメインをデータベースに保存しています。データベース フィールドの最大長を定義できるように、そのような IDNA 変換されたドメイン名の最大長を知る必要があります。
既知の事実:
現在、ドメイン名 (サブドメインを含む) の最大文字数は 255 文字であることを知っています。
紛失した場所:
一見簡単ですが... これは、国際文字の通常の ASCII 文字 (UTF-8 エンコーディングと考えてください) を意味するのでしょうか?
例を挙げると、ドメイン「müller.de」は、「ü」がより多くのバイトを表す必要がある国際文字であることを無視すると、9 文字になります。「müller.de」の IDNA バージョンは「xn--mller-kva.de」で、16 文字です。これは、IDNA 変換されている場合とされていない場合の "if" によって、確実に最大長に違いがあることを示しています。
それらが意味する文字の種類に応じて、最大 255 文字は、国際文字バージョン、IDNA 変換バージョン、またはその両方になる可能性があります。
そして、それは私がそれを少し失ったところです...特に、すべてのドメインが正気であるとは限らず、「öüßüöäéèê.example.äöüßüöäéèê-äöüßüöäéèê.test.äöüßüöäéèê.com」のようなものであり、さらに悪いことに予想された。
したがって、「推測」や「最善を期待する」ことはできません。私は確かに知る必要があります...
質問は:
ドメイン名 (サブドメインを含む) の最大文字数は 255 文字であるという既知の事実に基づいて... IDNA 変換されたドメイン名の最大長は?
それとも、IDNA 変換バージョン (punycode) も 255 文字に制限されていることを意味していたのでしょうか (これは、IDNA 変換バージョンが 255 文字を尊重する必要があるため、国際/Unicode 文字を含むドメインの Unicode 表現の制限が実際にはより短いことを意味します)。限界)?