location.href на домене с помощью umlaut (ü) сообщает о другом домене - PullRequest
0 голосов
/ 05 апреля 2019

Посещение следующего домена: https://obs.bürgerhaus.de

В браузере, если я проверяю document.location.href, я получаю следующее возвращаемое:

> document.location.href
"https://obs.xn--brgerhaus-q9a.de/"

Почему это значение отличается от фактического домена? Это какой-то тип кодировки URL или что-то? Как мне получить оригинальный домен с умлаутом в нем?

1 Ответ

1 голос
/ 05 апреля 2019

Система доменных имен, которая выполняет службу поиска для преобразования удобных для пользователя имен в сетевые адреса для поиска ресурсов Интернета, на практике ограничена 1 использованием символов ASCII, что является практическимограничение, которое первоначально устанавливало стандарт для допустимых доменных имен.

(см .: https://en.wikipedia.org/wiki/Internationalized_domain_name)

Как говорится в статье, домены, которые мы используем каждый день, технически ограничены символами ASCII, чтобыПоддержка большего количества символов. Домены Unicode кодируются в так называемый Punycode (см. RFC: https://www.ietf.org/rfc/rfc3492.txt)

. Посещение веб-сайта с умлаутом (или подобным) заставит браузер закодировать это. Например, http://öbb.at преобразуется в http://xn - bb-eka.at . Преобразованная форма называется ASCII-совместимым кодированием (ACE) и состоит из четырехсимвольного префикса (xn--) и представления punycodeсимволов Unicode. Подробнее см. здесь ...

Чтобы разобрать его, вы можете посмотреть:

Punycode JS on GitHub

Решение от некоторых - StackOverflow

...