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在控制台中以北印度语显示。

如果我只是这样打印
字符串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);

然后它可以正常工作,但是当我尝试从文件中读取它不起作用时。

帮帮我。

最佳答案

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

(确保您的控制台设置为显示北印度语(正确的字体等),并且控制台的编码与您的Java编码相匹配。上面的Java代码只是基本内容。)

10-06 16:10