Author: bleny Date: 2014-05-23 17:13:18 +0200 (Fri, 23 May 2014) New Revision: 2617 Url: http://forge.nuiton.org/projects/nuiton-csv/repository/revisions/2617 Log: fixes #3144 remove BOM from header Modified: trunk/src/main/java/org/nuiton/csv/Import.java Modified: trunk/src/main/java/org/nuiton/csv/Import.java =================================================================== --- trunk/src/main/java/org/nuiton/csv/Import.java 2014-05-23 14:54:53 UTC (rev 2616) +++ trunk/src/main/java/org/nuiton/csv/Import.java 2014-05-23 15:13:18 UTC (rev 2617) @@ -64,6 +64,13 @@ /** Logger. */ private static final Log log = LogFactory.getLog(Import.class); + /** + * BOM is a character you can find in the beginning of a UTF-8 encoded file that should not be interpreted. + * + * See http://en.wikipedia.org/wiki/Byte_order_mark + */ + protected static final char BOM_CHARACTER = '\uFEFF'; + /** Csv import model. */ protected ImportModel<E> model; @@ -331,6 +338,9 @@ try { String[] result = reader.getHeaders(); + if (result.length > 0) { + result[0] = removeBomCharacter(result[0]); + } return result; } catch (IOException e) { throw new ImportRuntimeException( @@ -338,6 +348,10 @@ } } + protected String removeBomCharacter(String s) { + return s.replaceFirst(BOM_CHARACTER + "?", ""); + } + protected List<ImportableColumn<E, Object>> getNonIgnoredHeaders() { List<ImportableColumn<E, Object>> nonIgnoredHeaders = new ArrayList<ImportableColumn<E, Object>>();