This has been a re-occurring support issue: When using one of Koha's many CSV download options, the exported CSV file doesn't open as UTF-8 in Excel, resulting in broken diacritics. LibreOffice doesn't show the issue. The only way to fix it right now is not to open the file directly, but to use the import functionality in Excel as it lets you pick the encoding and separators. This means a lot of extra steps and clicks, which make the CSV export functionalities in Koha hard to use. It turns out that Excel will import the CSV correctly, if we convert the encoding of the exported CSV file from UTF-8 to UTF-8-BOM. Problematic CSV exports include: * Exporting a basket summary page as CSV * Using CSV profile based exports in general, including: lists, basket, lost items report * ... Can we 'fix' the encoding to use BOM?
I started thinking about this after looking at bug 23685 too. I'm not entirely sure if we want to add a BOM to our CSV exports or not.. there are still programs out there written to work with ascii only and they struggle with BOM's. That said, excel is the most likely target so adding a BOM for that would be sensible. We could do with checking that adding said BOM doesn't break other popular tools like OpenOffice or LibreOffice however. Text::CSV::Encoded doesn't have any native BOM support, but it appears we're just dealing with strings. Perhaps we could use File::BOM
Created attachment 171650 [details] [review] 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.
Please test this
Test plan: 1.) search for a title with one item and edit the item 2.) add the internal note: "Test the diacritics ä ö ü é è ÄÖÜ" 3.) copy the biblionumber of the title 4.) create an sql report: SELECT itemnotes_nonpublic from items where biblionumber=<copied biblionumber> 5.) run report 6.) download as csv file 7.) open in excel 8.) Check that the diacritics do not look like above (internal note) 9.) Apply Patch 10.) repeat steps 5-7 11.) Check that the diacritics look like above (internal note)
Created attachment 171677 [details] [review] 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. Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
You're a star Micheal, thanks for testing ☺️
Created attachment 171837 [details] [review] 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. Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Nice one. This kind of thing has driven me nuts elsewhere in the past...
Thanks for all the hard work! Pushed to main for the next 24.11.00 release as RM Assistant
Doesn't apply to 24.05.x, rebase if needed.