From 815f27328b8a2546332a3876074bb8a3ab0ee970 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Thu, 2 Jan 2020 10:30:54 -0500 Subject: [PATCH] Bug 24330: When importing patrons from CSV, automatically strip BOM from file if it exists We have a partner that exports UTF-8 CSV files, and is experiencing the same thing as the author of this article: https://www.freecodecamp.org/news/a-quick-tale-about-feff-the-invisible-character-cd25cd4630e7/ In short, Excel is inserting an invisible UTF-8 character at the start of the file, so that the column name "cardnumber" is actually named "\x{feff}cardnumber", causing "cardnumber" to be blank. A simple solution is provided here: https://stackoverflow.com/questions/24390034/remove-bom-from-string-with-perl Test Plan: 1) Download the example.csv file 2) Attempt to import it using the patron import tool 3) Note the invalid column name error 4) Apply this patch, restart all the things! 5) Attempt the import again 6) Assuming you have a branchcode MPL and a cataegory code S, the patron should import! --- Koha/Patrons/Import.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/Koha/Patrons/Import.pm b/Koha/Patrons/Import.pm index fe63b9567e..a2bcc87339 100644 --- a/Koha/Patrons/Import.pm +++ b/Koha/Patrons/Import.pm @@ -385,6 +385,7 @@ sub prepare_columns { foreach my $keycol (@csvcolumns) { # columnkeys don't contain whitespace, but some stupid tools add it $keycol =~ s/ +//g; + $keycol =~ s/^\N{BOM}//; # Strip BOM if exists, otherwise it will be part of first column key $params->{keycol}->{$keycol} = $col++; } -- 2.21.0 (Apple Git-122.2)