Summary: | CSV export display broken diacritics in Excel | ||
---|---|---|---|
Product: | Koha | Reporter: | Katrin Fischer <katrin.fischer> |
Component: | Staff interface | Assignee: | Martin Renvoize (ashimema) <martin.renvoize> |
Status: | RESOLVED FIXED | QA Contact: | Lucas Gass (lukeg) <lucas> |
Severity: | normal | ||
Priority: | P5 - low | CC: | clemens.tubach, dcook, gmcharlt, martin.renvoize, mathsabypro, michaela.sieber |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
See Also: |
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=23685 https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39327 |
||
Change sponsored?: | --- | Patch complexity: | --- |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: | Version(s) released in: |
24.11.00
|
|
Circulation function: | |||
Attachments: |
Bug 33635: Add BOM to report exports as CSV
Bug 33635: Add BOM to report exports as CSV Bug 33635: Add BOM to report exports as CSV |
Description
Katrin Fischer
2023-04-28 13:11:36 UTC
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. Oh it seems duplicate of https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39197 but I think I still have this issue (no BOM) in my 21.11 Koha. I am going to check again I contact my support provider to check if is not working in our Koha and see why. *** Bug 39197 has been marked as a duplicate of this bug. *** (In reply to Mathieu Saby from comment #12) > I contact my support provider to check if is not working in our Koha and see > why. This is only fixed in 24.11 - see "versions released in". Oh of course, I need sleep ;-) and my Koha is 23.11... It could be nice if this patch could be applied to 24.05 and 23.11 I'm working on a similar problem in labels/label-create-csv.pl and I noticed adding the BOM isn't enough in all cases. With certain data, for some reason, it doesn't come out UTF-8 encoded. It comes out Latin-1 encoded instead. I think because it bumps into things like \xF6 which are actually Unicode codepoints and not UTF-8 bytes. But if I explicitly state the output is UTF-8 under the BOM print then all is well: binmode STDOUT, ':encoding(UTF-8)'; Text::CSV_XS explains this a bit https://metacpan.org/pod/Text::CSV_XS#Unicode And... looking at reports/guided_reports.pl it looks like we get around that problem because we're using Text::CSV::Encoded. But first decoding and scrubbing the string for the header? Interesting... Looks like Text::CSV::Encoded was added back in 2014 and can still use Text::CSV_XS under the hood, so that's good... (In reply to David Cook from comment #8) > Nice one. This kind of thing has driven me nuts elsewhere in the past... PS Bug 39327 - "UTF-8 BOM missing from label creator CSV and some UTF-8 output broken" is ready for testing :D |