Перво-наперво:
Я храню несколько доменов в базе данных, после того как я преобразовал каждое доменное имя в его версию IDNA.Что мне нужно знать, какую максимальную длину может иметь такое доменное имя, преобразованное IDNA, чтобы я мог определить максимальную длину поля базы данных.
Известный факт:
Теперь,Я знаю, что максимальное количество символов в имени домена (включая любые субдомены) составляет 255 символов.
Где я его потерял:
Это легко на первый взгляд, но ... означает ли это обычные символы ascii международных символов (например, кодировка UTF-8)?
В качестве примера: домен «müller.de» имеет 9 символов, когда я игнорирую, что «ü» - это международный символ, для представления которого требуется больше байтов.IDNA-версия «müller.de» - это «xn--mller-kva.de», которая имеет 16 символов.Это показывает, что есть определенная разница в максимальной длине в зависимости от того, «преобразована» ли она в IDNA или нет.
В зависимости от того, какие символы они означают, максимум из 255 символов может быть международной версией символа, преобразованной IDNA версией или даже обеими.
И вот здесь я немного потерял ... особенно, поскольку я должен принять во внимание, что не все домены будут нормальными, и все в таком духе, как "äöüßüöäéèê.com " и того хуже.
Таким образом, «угадывать» и «надеяться на лучшее» не вариант.Мне нужно знать наверняка ...
Вопрос такой:
Основан на известном факте, что максимальное количество символов в имени домена (включая любые субдомены) составляет 255 символов ... какова максимальная длина доменного имени, преобразованного в IDNA?
Или они также означают, что преобразованная в IDNA версия (punycode) такжеограничено 255 символами (что будет означать, что домены с международными символами / символами Юникода на самом деле будут иметь более короткие пределы в своем представлении Unicode, потому что их преобразованная в IDNA версия должна будет соответствовать пределу в 255 символов)?