El carácter del archivo csv es desconocido, aunque el mismo carácter escrito en el teclado es reconocido.
Hay un archivo csv que contiene caracteres especiales como ²
. Cuando muestro las líneas del csv a través de mi código, obtengo ?
:
import org.apache.commons.io.FileUtils;
...
List<String> lines = FileUtils.readLines(csv, StandardCharsets.UTF_8);
for(String line : lines) {
String[] champs = line.split(";");
String designation = champs[1];
System.out.println("========================== designation = "+designation);
}
Aunque cuando muestro una variable que contiene el carácter ²
ingresado desde el teclado, todo está bien. Entonces, ¿qué está mal?
davy.ai
El problema está en la codificación de caracteres utilizada en el archivo CSV. Cuando se utilizan caracteres especiales como
²
en un archivo CSV, es necesario codificarlos adecuadamente para que se muestren correctamente. En este caso, la codificación utilizada en el archivo CSV no es reconocida por el código, lo que resulta en la salida?
.Una solución podría ser utilizar una codificación diferente al leer el archivo CSV, como UTF-16 o UTF-8, dependiendo de la codificación utilizada en el archivo CSV. Otra solución podría ser limpiar el archivo CSV eliminando cualquier carácter especial o codificándolos correctamente para asegurar que se muestren correctamente en la salida del código.