2012-06-08 13 views
5
StringBuffer contents=new StringBuffer(); 
BufferedReader input = new BufferedReader(new FileReader("/home/xyz/abc.txt")); 
String line = null; //not declared within while loop 
while ((line = input.readLine()) != null){ 
    contents.append(line); 
} 
System.out.println(contents.toString()); 

archivo contiene abc.txtDisplay lengua hindi en la consola utilizando Java

\u0905\u092d\u0940 \u0938\u092e\u092f \u0939\u0948 \u091c\u0928\u0924\u093e \u091c\u094b \u091a\u093e\u0939\u0924\u0940 \u0939\u0948 \u092 

Quiero dispaly en lengua hindi en la consola utilizando Java.

si simplemente imprimen de la siguiente str String = "\ u0905 \ u092d \ u0940 \ u0938 \ u092e \ u092f \ u0939 \ u0948 \ u091c \ u0928 \ u0924 \ u093e \ u091c \ u094b \ u091a \ u093e \ u0939 \ u0924 \ u0940 \ u939 \ u0948 \ u092 ";

System.out.println (str);

funciona bien, pero cuando intento leer un archivo, no funciona.

ayúdame.

+5

Qué es una "consola de Java"? – missingfaktor

+0

@missingfaktor: creo que solo se refiere a la consola que está usando para ejecutar su programa (no está usando ningún IDE). ¡Y él probablemente esté en Windows! – WickeD

+0

Abra el archivo en un navegador y verifique si su codificación es correcta. Quizás la Consola Java no sea compatible con UTF. –

Respuesta

6

Uso Apache Commons Lang.

import org.apache.commons.lang3.StringEscapeUtils; 

// open the file as ASCII, read it into a string, then 
String escapedStr; // = "\u0905\u092d\u0940 \u0938\u092e\u092f \u0939\u0948 ..." 
// (to include such a string in a Java program you would have to double each \) 

String hindiStr = StringEscapeUtils.unescapeJava(escapedStr); 

System.out.println(hindiStr); 

(Asegúrese de que su consola está configurado para mostrar Hindi (fuentes correctas, etc.) y la codificación de la consola coincide con la codificación de Java. El código Java anterior es sólo el esqueleto.)

+0

pero cuando estoy insertando en la base de datos, simplemente inserta como ??? ??? ????????? no muestra la fuente hindi, cambié el juego de caracteres utf-8. –

5

Debe almacenar los contenidos en el archivo como UTF-8 caracteres Hindi codificados. Por ejemplo, en su caso sería अभी समय है जनता जो चाहती है. Es decir, en lugar de guardar escapes unicode, guarde directamente los caracteres hindúes sin formato. Entonces puedes simplemente leer como lo normal.

Solo tiene que asegurarse de que el editor que utiliza lo guarda utilizando la codificación UTF-8. Ver Spanish language chars are not displayed properly?

De lo contrario, tendrá que hacer el archivo de un archivo .properties y leer usando java.util.Properties, ya que ofrece soporte Unicode unescape inherentemente.

Lea también Reading unicode character in java