Команда file
сообщает мне:
tmp.txt: Little-endian UTF-16 Unicode text, with CRLF line terminators
cat
, head
и т. Д. Не может правильно отобразить этот файл.
Ноvim
может отображать это правильно.vim
говорит мне:
[~/tmp/tmp.txt] [utf-8,dos]
"tmp.txt" [converted][dos]
и :set
в vim говорит fileencoding=ucs-2le
Так в Perl:
open FH,'<:encoding(ucs-2le)',$file;
while(<FH>){
chomp;
# A start
print;
# Perl: Wide character in print at a.pl line 12, <FH> line 1
# And display incorrect
# A end
# B start
binmode STDOUT,":utf8";
print;
# display incorrect too
# B end
}
Как мне прочитать этот файлправильно в Perl?