Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java	(revision 30094)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java	(revision 30095)
@@ -458,5 +458,5 @@
 			String midLine = midReader.readLine();
 			if (midLine != null) {
-				String[] fields = OdUtils.stripQuotes(midLine.split(delimiter.toString()), delimiter.toString());
+				String[] fields = OdUtils.stripQuotesAndExtraChars(midLine.split(delimiter.toString()), delimiter.toString());
 				if (columns.size() != fields.length) {
 					System.err.println("Error: Incoherence between MID and MIF files ("+columns.size()+" columns vs "+fields.length+" fields)");
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReader.java	(revision 30094)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReader.java	(revision 30095)
@@ -80,5 +80,5 @@
 	private final String[] splitLine() {
 		if (line != null) {
-			return OdUtils.stripQuotes(line.split(sep), sep);
+			return OdUtils.stripQuotesAndExtraChars(line.split(sep), sep);
 		} else {
 			return null;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java	(revision 30094)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java	(revision 30095)
@@ -21,4 +21,5 @@
 import java.util.ArrayList;
 import java.util.List;
+import java.util.ListIterator;
 import java.util.Locale;
 
@@ -31,4 +32,5 @@
 import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleHandler;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.Utils;
 
 public abstract class OdUtils {
@@ -40,5 +42,5 @@
     }
     
-	public static final String[] stripQuotes(String[] split, String sep) {
+	public static final String[] stripQuotesAndExtraChars(String[] split, String sep) {
 		List<String> result = new ArrayList<String>();
 		boolean append = false;
@@ -58,4 +60,8 @@
 				result.add(split[i]);
 			}
+		}
+		// Remove exotic characters such as U+FEFF found in some CSV files
+		for (ListIterator<String> it = result.listIterator(); it.hasNext();) {
+		    it.set(Utils.strip(it.next()));
 		}
 		return result.toArray(new String[0]);
