Tengo problema en leer archivo de texto con codificación utf-8
Estoy usando la versión de java con netbeans 7.2.1 plataforma

Ya he configurado el proyecto java para manejar UTF-8
javaproject==>click derecho==>propiedades==>fuente==>UTF-8

pero aún así obtener el carácter desconocido de salida:
����� �������� ���� �

el código:

File fileDirs = new File("C:\file.txt");

BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream(fileDirs), "UTF-8"));

String str;

while ((str = in.readLine()) != null) {
    System.out.println(str);
}

cualquier otra idea?

gracias

  • ¿Qué es la codificación de la System.out? ¿Cuál es tu sistema de codificación?
  • Estás seguro, el archivo de entrada está codificado en UTF-8?
  • gracias a todos por sus comentarios. He encontrado la solución al problema.el archivo de texto fue con codificación ANSI con carácter árabe. así, para resolver : clases bufferedreader in = new clases bufferedreader( new InputStreamReader(new FileInputStream(fileDirs), «windows-1256»));–gracias a todos
InformationsquelleAutor Abrial | 2013-02-17

5 Comentarios

  1. 34

    Uso

        import java.io.BufferedReader;
        import java.io.File;
        import java.io.FileInputStream;
        import java.io.IOException;
        import java.io.InputStreamReader;
        import java.io.UnsupportedEncodingException;     
        public class test {
        public static void main(String[] args){
    
        try {
            File fileDir = new File("PATH_TO_FILE");
    
            BufferedReader in = new BufferedReader(
               new InputStreamReader(new FileInputStream(fileDir), "UTF-8"));
    
            String str;
    
            while ((str = in.readLine()) != null) {
                System.out.println(str);
            }
    
                    in.close();
            } 
            catch (UnsupportedEncodingException e) 
            {
                System.out.println(e.getMessage());
            } 
            catch (IOException e) 
            {
                System.out.println(e.getMessage());
            }
            catch (Exception e)
            {
                System.out.println(e.getMessage());
            }
        }
    }

    Que usted necesita para poner en UTF-8 citas

    • Las malas prácticas para poner en.cerrar antes de la captura. Debe ser en un bloque finally. También se puede utilizar de múltiples capturas en formato Java 8
  2. 10

    Que usted está leyendo el archivo de la derecha pero el problema parece ser con la codificación predeterminada de System.out. Pruebe esto para imprimir la UTF-8 cadena-

    PrintStream out = new PrintStream(System.out, true, "UTF-8");
    out.println(str);
  3. 8

    Usted necesita para especificar la codificación de la InputStreamReader el uso de la Charset parámetro.

    Charset inputCharset = Charset.forName("ISO-8859-1");
    InputStreamReader isr = new InputStreamReader(fis, inputCharset));

    Este es un trabajo para mí. espero la ayuda de ustedes.

    • Eres el campeón! Gracias, hermano 🙂
    • Lg g3 = trabajar con utf-8, pero no ISO-8859-1, y mi ASUS = trabaja con ISO-8859-1, pero no en utf-8 …
  4. 3

    Me encontré con el mismo problema cada vez que se encuentra un carácter especial marca como ��. para solucionar esto, he intentado utilizar el encoding: ISO-8859-1

    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("txtPath"),"ISO-8859-1"));
    
    while ((line = br.readLine()) != null) {
    
    }

    Espero que esto pueda ayudar a cualquier persona que vea este post.

  5. 0

    Ok, yo soy definitivamente tarde a la fiesta, pero si usted todavía está buscando una solución óptima usaría la siguiente ( para Java 8 )

        Charset inputCharset = Charset.forName("ISO-8859-1");
        Path pathToFile = ....
        try (BufferedReader br = Files.newBufferedReader( pathToFile, inputCharset )) {
            ...
         }

Dejar respuesta

Please enter your comment!
Please enter your name here