S3.Blog

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

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

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


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




Геннадий (гость) • ответить
Ай, спасибо. Пригодилось! Ваш труд был не напрасен. Успехов!
Алексей (гость) • ответить
А как сделать, чтобы конвертировать можно было список произвольнорй длины?

Например:
xn--o1ae0b.xn--p1ai
xn--o1af9a.xn--p1ai
xn--o1afc5b.xn--p1ai
xn--o1aff1b.xn--p1ai
xn--o1ahh.xn--p1ai
..........
..........
..........
xn--r1ash.xn--p1ai
xn--s1aac.xn--p1ai
xn--u1apb.xn--p1ai
Александрответить
пройтись в цикле и обработать каждое значение отдельно
Алексей (гость) • ответить
Александр, был бы я программером - такие б вопросы не задавал бы... :-)

В цикле - это понятно. А что конкретно писать-то? Скрипт править нужно? И как его потом вставлять?
Александрответить
ну я ж не знаю как вы данные передавать будете
если из textarea, то это будет примерно так (пример рабочий):
<html>
<body>
<script type="text/javascript" language="javascript" src="http://www.s3blog.org/files/development/javascript/punycode.js"></script>
<textarea id="my_textarea"></textarea>
<textarea id="my_textarea_result"></textarea>
<input type="button" value="to-unicode" onclick="goToUnicode();">

<script type="text/javascript">
function goToUnicode() {
var my_textarea = document.getElementById('my_textarea');
var my_textarea_result = document.getElementById('my_textarea_result');
my_textarea_result.value = '';

var text = my_textarea.value;
var text_ary = text.split("\n" );

for (var i=0; i<text_ary.length; i++) {
my_textarea_result.value += punycode.ToUnicode(text_ary[i]) + "\n";
}
}
</script>
</body>
</html>
Алексей (гость) • ответить
Спасибо, Александр!
Работает отлично!

Как бы ещё сделать, чтобы оба поля (то, куда вводятся данные, и то, в котором появляется результат) были большими, хотя бы по пол-экрана каждое?
Артем (гость) • ответить
Александр, спасибо большое, что поделились своими находками!
Возникла потребность сделать такое же, но только в обратном направлении (в пиникод кодировать из 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
Алексей (гость) • ответить
Спасибо! Теперь я понял, где у меня глюк!))
Ислам (гость) • ответить
Здравствуйте. У меня тоже возникла потрнбность в конвертации. Но у меня небольшая проблема. У меня скрипт делает выборку из общего списка и переписывает в новый файл все найденные русские домены.. Мне нужен скрипт который прочтет этот файл, переведет и запишет в новый файл каждый домен в новую строку. Реально ли такое сделать?
Александрответить
реально, делайте
но я вам помочь не могу, так как даже не знаю на каком языке вам это надо, а я владею только javascript и perl
Ислам (гость) • ответить
Спасибо за такой быстрый ответ. Будем искать.

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

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

 



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