Имена хостов разрешены DNS всегда в нижнем регистре.
невозможно иметь символы UTF-8 в именах узлов DNS (RFC 1123), однако был найден обходной путь с "интернационализированными доменными именами". Этот обходной путь обычно известен как punycode .
Punycode позволяет символам, не являющимся ASCII, представляться символами ASCII.
не-ASCII символы представлены символами ASCII, которые разрешены в метках имени хоста (буквы, цифры и дефисы).
- https://www.ietf.org/rfc/rfc3492.txt
Что касается примера, который вы предоставили в своем вопросе (www.olé.com
), доменное имя, которое будет разрешено , равно , а не www.ol% E9.com.
Если вы получаете процентные знаки в имени вашего домена, это означает, что вы указали URL-адрес имени хоста, и это неверно, по крайней мере, не для разрешения.
Например, будет правильно работать с тегом a
, который выглядит следующим образом:
<a href="//www.ol%C3%A9.com">Click Here</a>
Тем не менее, DNS-сервер не будет разрешать www.ol%C3%A9.com
, а преобразованное имя домена в виде punycode:
Пример * * одна тысяча тридцать шесть
www.ol%C3%A9.com
становится
www.olé.com
который в punycode переводится как:
www.xn--ol-cja.com
Веб-браузеры обычно преобразуют заглавные буквы в строчную версию. Например, и www.olé.com
, и www.olÉ.com
преобразуются в одно и то же имя хоста DNS (www.xn--ol-cja.com
), поскольку www.olÉ.com
в нижнем регистре составляет www.olé.com
.
Я рекомендую два инструмента для проверки доменных имен IDN, чтобы увидеть, как выглядит доменное имя после прохождения перевода с помощью punycode:
Инструмент преобразования IDN Verisign (http://mct.verisign -grs.com / )
Punycoder Punycode to Text / Unicode https://www.punycoder.com/
Инструмент IDN в Verisign намного строже. Попробуйте оба инструмента с www.olÉ.com
в качестве ввода, чтобы понять, что я имею в виду.
Правила для IDNA (интернационализированных доменных имен для приложений) сложны, но есть два основных RFC, на которые стоит обратить внимание:
Интернационализированные доменные имена для приложений (IDNA): предыстория, объяснение и обоснование
https://tools.ietf.org/html/rfc5894
Кодовые точки Unicode и интернационализированные доменные имена для приложений
https://tools.ietf.org/html/rfc5892
rfc5894 раздел 3.1.3 указывает, что символы могут не допускаются, если:
Символ является заглавной или какой-либо другой формой, которая
сопоставляется с другим символом путем свертывания регистра Unicode.