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

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


Боковая панель

Связь

punycode

Содержание

Punycode

Punycode (произносится как «пуникод») — стандартизированный метод преобразования последовательностей Unicode- символов в ACE- последовательности, которые состоят только из алфавитно-цифровых символов, как это разрешено в доменных именах. Punycode описан в RFC 3492. Punycode был разработан для однозначного преобразования доменных имен в последовательность ASCII-символов.

Причиной введения Punycode был тот факт, что в утверждённой стандартом DNS разрешены только 26 символов латинского алфавита, цифры от 0 до 9 и дефис. Для английского и некоторых других языков с латинским алфавитом этого достаточно, однако другие языки, в том числе и с латинским алфавитом, содержат дополнительные символы, например ä, ö или ü.

Преобразование в Punycode должно происходить в клиентских приложениях (например, браузерах), а не на сервере.

Чтобы IDN - домен после преобразования нельзя было спутать с обычным доменом, все IDN - домены начинаются со специального префикса «XN–».

  • JavaScript и Punycode.

Для JavaScript существует клиентская библиотека punycode.js, планируется, что она также заменит в составе node.js с версии 0.6.2 устаревший алгоритм. Скачиваем:

$ git clone git://github.com/bestiejs/punycode.js.git

Для подключения в браузере:

<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>

Для подключения в node.js (младше версии 0.6.2) нужно использовать npm

npm install punycode

Подключение для Narwhal, node.js, RingoJS:

var punycode = require('punycode');

Ссылки




punycode.txt · Последние изменения: 2013/02/27 09:20 (внешнее изменение)