2012-06-08 14 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()); 

Plik abc.txt zawieraWyświetlacz hindi język w konsoli przy użyciu Java

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

Chcę dispaly w języku hindi w konsoli przy użyciu języka Java.

jeśli ja po prostu wydrukować jak to ul String = "\ u0905 \ u092d \ u0940 \ u0938 \ u092e \ u092f \ u0939 \ u0948 \ u091c \ u0928 \ u0924 \ u093e \ u091c \ u094b \ u091a \ u093e \ u0939 \ u0924 \ u0939 \ u0939 \ u092 \ u002 ";

System.out.println (str);

to działa dobrze, ale gdy próbuję odczytać z pliku, to nie działa.

Pomóż mi.

+5

Co jest "konsola Java"? – missingfaktor

+0

@missingfaktor: myślę, że on po prostu oznacza konsolę, której używa do uruchomienia swojego programu (nie używa żadnego IDE). A on jest prawdopodobnie w oknach !! – WickeD

+0

Otwórz plik w przeglądarce i sprawdź, czy kodowanie jest poprawne? Być może konsola Java nie obsługuje formatu UTF. –

Odpowiedz

6

Zastosowanie 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); 

(Upewnij się, że konsola jest skonfigurowany do wyświetlania hinduski (poprawnych czcionek, etc) i kodowanie konsoli pasuje kodowanie Java. Kod Java powyżej jest tylko szkielety.)

+0

, ale kiedy wstawiam do bazy danych to po prostu wstawione jak ??? ??? ????????? nie wyświetla hinduskiej czcionki i zmieniła zestaw znaków UTF-8. –

5

Powinieneś przechowywać zawartość w pliku jako zakodowane znaki hindi UTF-8. Na przykład w twoim przypadku będzie to अभी समय है जनता जो चाहती है. Oznacza to, że zamiast zapisywać wyjścia unikodowe, należy bezpośrednio zapisać surowe znaki hindi. Możesz wtedy po prostu czytać jak normalnie.

Musisz tylko upewnić się, że używany edytor zapisuje go przy użyciu kodowania UTF-8. Patrz: Spanish language chars are not displayed properly?

W przeciwnym razie plik należy utworzyć w postaci pliku .properties i odczytywać go za pomocą java.util.Properties, ponieważ zapewnia on wsparcie dla unikodowania w standardzie Unicode.

przeczytać również Reading unicode character in java

Powiązane problemy