S3.Blog

27 Марта 2017
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

JavaScript: Конвертация punycode

Дата последнего изменения: 27 Сентября 2011
Метки статьи: Готовые решения, JavaScript
Я уже писал про конвертацию с помощью perl на стороне сервера. А сегодня нашел решение на основе javascript, выполняемое на стороне клиента. Не знаю, правда, пригодится ли когда-нибудь кому-нибудь...
 


Буду краток:
  1.  подключаем файл punycode.js
     
  2. используем его для конвертации в ASCII
    <script type="text/javascript" language="javascript" src="punycode.js"></script>
    <script type="text/javascript" language="javascript">
    var result = punycode.ToUnicode('xn--d1abbgf6aiiy.xn--p1ai');
    </script>
    
  3. используем его для конвертации в UTF8
    <script type="text/javascript" language="javascript" src="punycode.js"></script>
    <script type="text/javascript" language="javascript">
    var result = punycode.ToASCII('президент.рф');
    </script>
    
По материалам: Can anyone recommend a good, free javascript for punycode to Unicode conversion?


Посмотреть как работает можно тут:


Unicode (UTF8) Punycode
  


Похожие материалы:




Артем (гость) • ответить
Александр, спасибо большое, что поделились своими находками!
Возникла потребность сделать такое же, но только в обратном направлении (в пиникод кодировать из textarea).
Может подскажите, как реализовать? (а еще лучше как на perl у вас - 2 кнопки, но с использованием textarea, чтобы много доменов можно было обработать)
Я понимаю, что с точностью да наоборот, но в php не разбираюсь к сожалению вообще...
Александрответить
так я ж уже писал в одном из комментариев товарищу Алексею про кодировку туда-обратно с помощью textarea

а на перле это будет выглядеть примерно так:

my $q = new CGI;
my $domain_list = $q->param('domain') || '';
foreach my $domain (split(/\n/, $domain_list)) {
.....
my $result = puny_decode_domain($domain);
.....
}
Артем (гость) • ответить
Да, я читал все комменты. Алексею вы давали пример на кодировку в только одну сторону... из пиникод в кириллицу.
В том же примере (на несколько постов выше, где используется text area) вы можете помочь - сделать в обратную сторону конвертацию?
(тот код, который вы сейчас дали я не знаю куда вставать, так как в PHP и перле вообще никак...)

Буду очень благодарен, если затратите немного своего времени на этот вопрос.
Александрответить
в примере для Алексея замените punycode.ToUnicode на punycode.ToASCII и получите конвертацию в обратную сторону
Артем (гость) • ответить
Спасибо огромное! Все отлично работает )
Алексей (гость) • ответить
Спасибо, Александр! С вашей помощью я почти стал программистом!))
Алексей (гость) • ответить
Александр, подскажите, где нужно изменить цифру, чтобы скрипт мог конвертировать более 10000 строк из punycode в UTF8?
Александрответить
Не понял вопроса.
Сколько в textarea вобьёте строк, столько и будет переведено.
Хоть 100_000
Алексей (гость) • ответить
Спасибо! Теперь я понял, где у меня глюк!))

 
 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.