From faf8a7ae63cd486db7dbec922d9ef4bee25a3741 Mon Sep 17 00:00:00 2001 From: Kailash Nadh Date: Mon, 9 Mar 2020 19:47:20 +0530 Subject: [PATCH] Add fix for BOM in CSV importers --- internal/subimporter/importer.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/subimporter/importer.go b/internal/subimporter/importer.go index eb70ed1..9129c99 100644 --- a/internal/subimporter/importer.go +++ b/internal/subimporter/importer.go @@ -104,6 +104,8 @@ var ( // https://www.alexedwards.net/blog/validation-snippets-for-go#email-validation regexEmail = regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$") + + regexCleanStr = regexp.MustCompile("[[:^ascii:]]") ) // New returns a new instance of Importer. @@ -555,6 +557,8 @@ func (s *Session) mapCSVHeaders(csvHdrs []string, knownHdrs map[string]bool) map // This is to allow dynamic ordering of columns in th CSV. hdrKeys := make(map[string]int) for i, h := range csvHdrs { + // Clean the string of non-ASCII characters (BOM etc.). + h := regexCleanStr.ReplaceAllString(h, "") if _, ok := knownHdrs[h]; !ok { s.log.Printf("ignoring unknown header '%s'", h) continue