Принудительная установка порядка байтов UTF-8 в выводе файла Perl - PullRequest
8 голосов
/ 14 сентября 2011

Я пишу файл CSV, используя Perl.Данные, поступающие в CSV, содержат символы Unicode.Я использую следующее, чтобы выписать CSV:

#OPEN THE FILE FOR WRITE
open(my $fh, ">:utf8", "rpt-".$datestring.".csv")
or die "cannot open < rpt.csv: $!";

То есть, правильная запись символов в файле, но, по-видимому, не включает метку порядка байтов UTF8.Это, в свою очередь, отбрасывает моих пользователей, пытающихся открыть файл в Excel.Есть ли способ принудительно записать метку порядка байтов?

Я попытался сделать это следующим образом:

print $fh "\x{EFBBBF};

Я закончил с бредом вверху файла.Любая помощь будет принята с благодарностью.

1 Ответ

13 голосов
/ 14 сентября 2011

Попробуйте сделать это:

print $fh chr(65279);

после открытия файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...