diff --git a/modules/platform/nuxeo-platform-directory/nuxeo-platform-directory-core/pom.xml b/modules/platform/nuxeo-platform-directory/nuxeo-platform-directory-core/pom.xml index a56b9537b60..aa050773d4f 100644 --- a/modules/platform/nuxeo-platform-directory/nuxeo-platform-directory-core/pom.xml +++ b/modules/platform/nuxeo-platform-directory/nuxeo-platform-directory-core/pom.xml @@ -77,6 +77,10 @@ org.apache.commons commons-csv + + commons-io + commons-io + org.nuxeo.common nuxeo-common @@ -136,4 +140,4 @@ - \ No newline at end of file + diff --git a/modules/platform/nuxeo-platform-directory/nuxeo-platform-directory-core/src/main/java/org/nuxeo/ecm/directory/DirectoryCSVLoader.java b/modules/platform/nuxeo-platform-directory/nuxeo-platform-directory-core/src/main/java/org/nuxeo/ecm/directory/DirectoryCSVLoader.java index 2d1ad1494b6..096e3a01d84 100644 --- a/modules/platform/nuxeo-platform-directory/nuxeo-platform-directory-core/src/main/java/org/nuxeo/ecm/directory/DirectoryCSVLoader.java +++ b/modules/platform/nuxeo-platform-directory/nuxeo-platform-directory-core/src/main/java/org/nuxeo/ecm/directory/DirectoryCSVLoader.java @@ -38,6 +38,7 @@ import java.util.function.Consumer; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; +import org.apache.commons.io.input.BOMInputStream; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -106,8 +107,7 @@ public class DirectoryCSVLoader { public static void loadData(Blob dataBlob, char delimiter, Schema schema, Consumer> loader) { BiConsumer, Integer> loaderWithLineno = toLoaderEnrichedOnError(loader); String dataFileName = dataBlob.getFilename(); - try (InputStream in = dataBlob.getStream(); - CSVParser csvParser = new CSVParser(new InputStreamReader(in, UTF_8), + try (CSVParser csvParser = new CSVParser(new InputStreamReader(new BOMInputStream(dataBlob.getStream())), CSVFormat.DEFAULT.withDelimiter(delimiter).withHeader())) { Map header = csvParser.getHeaderMap();