С наступающим новым годом!

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, всё остальное очень простое.

Читайте также

Epic War 4
EpicWar4 (51.74КиБ) Подсел на флеш-игрушку Epic War 4.
2010
«Кремниевая долина»
Пока отхожу от операции, смотрю сериал «Кремниевая долина» и дабы не заржавел мозг, сделал расшифровку надписи на футболке Эрлиха — одного из героев сериала, на трёх языках: Перле, Пайтоне и Тикле. Листинг один для трёх языков:
2015
Интересы из любви к искусству
Ромахин на жижовке рассказывал как он заполнял свои интересы в ЖЖ (упоминание об этом есть по ссылке). Мне стало интересно, что он там такого навыбирал.
2004

Комментарии 12

xorax.livejournal.com № 7
похапэшное у меня не выполнилось. и поделом: в новом году нам всем будет лучше, если похапе сдохнет:)
Евгений Степанищев (bolknote.ru) автор № 8
Я разбил переводами строки, их надо удалить или iconv не было. В прошлом году все были несправедливы к этому языку, полагая, что язык, а не кривые руки заставляют людей писать кривые программы :-D

Пусть в следующем году винят не инструмент, а того, кто им пользуется!
Алик Кириллович (www.alik.su) № 9
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) № 11
Если нужно, чтобы скрипт обязательно запускался из командной строки, как в приведенных примерах (а не из браузера), можно использовать:

Windows Script Host (wscript.exe) — не требует установки, встроена в Windows

или

Mozilla Rhino (jrunscript) — требует standalone Mozilla Rhino или JDK 1.6, но, зато кросплатформенна

Могу сделать, если хотите.

Можете добавить пример на JavaScript в топик; на сколько я знаю, это один из ваших любимых языков :-)