Инструменты пользователя

Инструменты сайта


punycode

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

punycode [2019/01/04 09:01] (текущий)
Строка 1: Строка 1:
 +====== Punycode DNS ======
  
 +{{htmlmetatags>​
 +metatag-description=(Punycode - это метод преобразования в том числе кириллических символов,​ относящихся к стандарту Unicode.)
 +}}
 +
 +{{ ::​idn-punycode-en.png?​nolink |}}
 +
 +**Punycode** ​ (произносится как «пуникод») — стандартизированный метод преобразования последовательностей [[Unicode]]- символов в ACE- последовательности,​ которые состоят только из алфавитно-цифровых символов,​ как это разрешено в доменных именах. Punycode описан в [[RFC]] 3492. Punycode был разработан для однозначного преобразования доменных имен в последовательность [[ASCII]]-символов.
 +
 +Причиной введения Punycode был тот факт, что в утверждённой стандартом [[DNS]] разрешены только 26 символов латинского алфавита,​ цифры от 0 до 9 и дефис. Для английского и некоторых других языков с латинским алфавитом этого достаточно,​ однако другие языки, в том числе и с латинским алфавитом,​ содержат дополнительные символы,​ например ä, ö или ü.
 +
 +Преобразование в Punycode должно происходить в клиентских приложениях (например,​ браузерах),​ а не на сервере.
 +
 +Чтобы [[IDN]] - домен после преобразования нельзя было спутать с обычным доменом,​ все IDN - домены начинаются со специального префикса «XN--». ​
 +
 +===== JavaScript и Punycode =====
 +
 +Для [[JavaScript]] существует клиентская библиотека [[https://​github.com/​bestiejs/​punycode.js|punycode.js]],​ планируется,​ что она также заменит в составе [[Node.js]] с версии 0.6.2 устаревший алгоритм. Скачиваем:<​file>​
 +$ git clone git://​github.com/​bestiejs/​punycode.js.git
 +</​file>​
 +Для подключения в браузере:​
 +<​file>​
 +<script type="​text/​javascript"​ src="​punycode.js"></​script>​
 +<script type="​text/​javascript"​ language="​javascript">​
 +// конвертация в UTF-8
 +var result = punycode.ToASCII('​кремль.рф'​);​
 +</script
 +<script type="​text/​javascript"​ language="​javascript">​
 +// конвертация в ASCII
 +var result = punycode.ToUnicode('​XN--E1AJEDS9E.XN--P1AI'​);​
 +</​script>​
 +</​file>​
 +Для подключения в [[Node.js]] (младше версии 0.6.2) нужно использовать npm
 +<​file>​
 +npm install punycode
 +</​file>​
 +Подключение для [[Narwhal]],​ [[Node.js]],​ [[RingoJS]]:​
 +<​file>​
 +var punycode = require('​punycode'​);​
 +</​file>​
 +===== PHP и Punycode =====
 +  * [[https://​github.com/​bestiejs/​punycode.js|punycode.js]]
 +  * [[http://​s3blog.org/​konvertacija-domena-v-zone-rf-v-punycode.html|Perl:​ Конвертация домена в зоне .рф в punycode]]
 +  * [[http://​php.net/​manual/​en/​ref.intl.idn.php|PHP:​ IDN Functions]] требуется установка пакета **php5-intl**
 +  * [[http://​pear.php.net/​package/​Net_IDNA2|PEAR Net_IDNA2]]
загрузка...
punycode.txt · Последние изменения: 2019/01/04 09:01 (внешнее изменение)