Я использую Perl для чтения файлов UTF-16LE в Windows 7.
Если я читаю в файле ASCII со следующим кодом, то каждый "\ r \ n" в файле будет преобразован в "\n "в памяти:
open CUR_FILE, "<", $asciiFile;
Если я читаю в файле UTF-16LE (windows 1200) со следующим кодом, это несоответствие вызывает проблемы, когда я пытаюсь отразить строки с разрывами строк.
open CUR_FILE, "<:encoding(UTF-16LE)", $utf16leFile;
Тогда "\ r \ n" останется без изменений.
Обновление:
Для каждой строки файла UTF-16LE:
line =~ /(.*)$/
Тогда строка, соответствующая $ 1, будет содержать в конце символ "\ r" ...