С наступающим новым годом!
perl -MEncode -e '
$_ =
"1101000100100000111011011110111011100010111110111110110000100000111000111110111011100100111011101110110000100001";
@x = /(d{8})/g; print Dumper @x; print encode_utf8(decode("cp1251", chr(eval "0b$_"))) for @x; print "n"'
python -c "print ''.join((lambda s: [chr(int(s[x:x+8], 2)).decode('cp1251') for x in xrange(0, len(s), 8)])(
'1101000100100000111011011110111011100010111110111110110000100000111000111110111011100100111011101110110000100001'))"
php -r 'echo iconv("cp1251", "utf-8", join(array_map("chr", array_map("bindec", str_split
("1101000100100000111011011110111011100010111110111110110000100000111000111110111011100100111011101110110000100001",
8)))));'
powershell -Command "[system.string]::join('', @([regex]::split(
'1101000100100000111011011110111011100010111110111110110000100000111000111110111011100100111011101110110000100001',
'(.{8})') | Where {$_} | %{ [Convert]::ToInt16($_, 2)} |
%{[System.Text.Encoding]::GetEncoding('utf-8').GetString([System.Text.Encoding]::
Convert([System.Text.Encoding]::GetEncoding('windows-1251'),
[System.Text.Encoding]::GetEncoding('utf-8'), [byte]$_))}))"
Вариант на Перле — Вячеслава Матюхина, остальные — мои. Текст на Powershell выглядит монструозно, но на деле там самый страшный кусок — перевод байтовой строки cp1251 в utf-8, всё остальное очень простое.
Слова «наступающим» там нету :) А во стальном — взаимно :)
Прекрасные скрипты :)
..и тебя с Новым Годом! Всего тебе, чего у тебя нет, но хочется!
Надо было в троичной системе счисления, год же 2010!!!
С наступающим!
Комментарий для u1itka.livejournal.com:
Строки были бы куда огромней :)
Комментарий для astur.net.ru:
Спасибо!
Комментарий для cyanide-burnout.livejournal.com:
С «наступающим» длиннее получалось, в строку не влезало :)
похапэшное у меня не выполнилось. и поделом: в новом году нам всем будет лучше, если похапе сдохнет:)
Комментарий для xorax.livejournal.com:
Я разбил переводами строки, их надо удалить или iconv не было. В прошлом году все были несправедливы к этому языку, полагая, что язык, а не кривые руки заставляют людей писать кривые программы :-D
Пусть в следующем году винят не инструмент, а того, кто им пользуется!
JavaScript, из-за метода reduce, пока Firefox/Chrome only:
alert («1101000100100000111011011110111011100010111110111110110000100000111000111110111011100100111011101110110000100001».replace(/\d{8}/g, «$&,»).split(«,»).reduce(function (p, a) {return (p + String.fromCharCode (parseInt (a, 2) + (parseInt (a, 2) > 191 ? 848 : 0)))}, «„))
Комментарий для www.alik.su:
Точно, JS забыл! :)
Если нужно, чтобы скрипт обязательно запускался из командной строки, как в приведенных примерах (а не из браузера), можно использовать:
Windows Script Host (wscript.exe) — не требует установки, встроена в Windows
или
Mozilla Rhino (jrunscript) — требует standalone Mozilla Rhino или JDK 1.6, но, зато кросплатформенна
Могу сделать, если хотите.
Можете добавить пример на JavaScript в топик; на сколько я знаю, это один из ваших любимых языков :-)
Комментарий для www.alik.su:
Да, так и есть. Сделайте, добавлю после НГ:)