显示印地文语言使用的Java控制台(Display Hindi language in consol

2019-06-25 08:39发布

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

文件abc.txt包含

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

我想在使用Java控制台印地文语言dispaly。

如果我只打印这样的字符串str =“\ u0905 \ u092d \ u0940 \ u0938 \ u092e \ u092f \ u0939 \ u0948 \ u091c \ u0928 \ u0924 \ u093e \ u091c \ u094b \ u091a \ u093e \ u0939 \ u0924 \ u0940 \ u0939 \ u0948 \ U092" ;

的System.out.println(STR);

然后它工作正常,但是当我尝试从文件中读取它不能正常工作。

帮帮我。

Answer 1:

使用Apache的百科全书郎 。

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

(请确保您的控制台设置为显示印地文(正确的字体等)和控制台的编码您的Java编码相匹配。上面的Java代码只是光秃秃的骨头。)



Answer 2:

您应该将内容存储在文件中UTF-8编码的印地文字符。 例如,在你的情况下,将अभी समय है जनता जो चाहती है 。 也就是说,而不是保存Unicode转义,直接保存原始印地文字符。 然后,您可以简单地念想正常。

你只需要确保您使用的编辑器使用UTF-8编码将其保存。 见西班牙语字符显示不正常?

否则,你就必须使文件.properties文件,并使用读取java.util.Properties ,因为它提供的unicode转义支持本质。

另请阅读阅读在Java中的Unicode字符



文章来源: Display Hindi language in console using Java
标签: java utf-8