From 3232f841f7148ef61a9eddcd2fbcc59775badff7 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 18 Sep 2024 05:42:41 +0100 Subject: [PATCH] Bug 33635: Add BOM to report exports as CSV When you export a report as CSV excel will not recognise that it's encoding is utf-8 unless there is a correct Byte Order Mark prepended to the file. This patch adds such a BOM to the output file allowing Excel to treat the file correctly. --- reports/guided_reports.pl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index 49687d39886..38d55522700 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -646,6 +646,10 @@ elsif ($op eq 'export'){ if ( $format eq 'csv' ) { my $delimiter = C4::Context->csv_delimiter; $type = 'application/csv'; + + # Add BOM for UTF-8 encoded CSV + $content .= "\xEF\xBB\xBF"; + my $csv = Text::CSV::Encoded->new({ encoding_out => 'UTF-8', sep_char => $delimiter}); $csv or die "Text::CSV::Encoded->new({binary => 1}) FAILED: " . Text::CSV::Encoded->error_diag(); if ( $csv->combine( header_cell_values($sth) ) ) { -- 2.46.0