- Читая man, выяснил, что офисный Юникод — это UCS-2LE. А если в ём переставить байты местами — это USC-2BE, или просто UCS-2, или ISO-10646-1.
- Простейший перловый декодер из офисного Юникода в windows-1251:
И что самое главное, не нужен ни внешний софт, ни доп. библиотеки — всё уже есть!#!/usr/bin/perl -w use strict; open(my $fh, '<:encoding(ucs2_le)', $ARGV[0]); my @txt = <$fh>; binmode(STDOUT, ":encoding(cp1251)"); print join('', @txt); - upd: а с использованием библиотеки Encode ещё проще:
#!/usr/bin/perl -w use strict; use Encode 'from_to'; my $str = ".\cD=\cD8\cD:\cD>\cD4\cD"; from_to($str, "UCS-2LE", "cp1251"); print $str;
Page Summary
Style Credit
- Style: Neutral Good for Practicality by
Expand Cut Tags
No cut tags
no subject
Date: 2006-06-30 12:24 am (UTC)perl -Mencoding=ucs2_le,STDOUT,cp1251 -pe 1
perl -Mencoding=ucs2_le,STDOUT,cp1251 -pe 1 <in.txt >out.txt
Ага
Date: 2006-06-30 04:36 am (UTC)no subject
Date: 2007-03-12 01:37 pm (UTC)А так вот это решение - просто супер:
perl -Mencoding=ucs2_le,STDOUT,cp1251 -pe 1
А так вот это решение - просто супер:
<b>perl -Mencoding=ucs2_le,STDOUT,cp1251 -pe 1 <in.txt >out.txt</b>