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

ファイル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 を使用して、コンソールでヒンディー語で表示したいと考えています。

この文字列のように単純に印刷すると\u0948 \u092";

System.out.println(str);

その後は正常に動作しますが、ファイルから読み込もうとすると動作しません。

手伝ってください。

4

2 に答える 2

6

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 コードは必要最小限のものです。)

于 2012-06-08T14:51:51.397 に答える
5

UTF-8内容をエンコードされたヒンディー語文字としてファイルに保存する必要があります。たとえば、あなたの場合はअभी समय है जनता जो चाहती है。つまり、Unicodeエスケープを保存する代わりに、生のヒンディー語文字を直接保存します。その後、通常のように簡単に読むことができます。

使用するエディターがUTF-8エンコーディングを使用して保存していることを確認する必要があります。スペイン語の文字が正しく表示されないのを参照してください。

それ以外の場合は、ファイルをファイルにして、Unicodeエスケープ解除サポートを本質的に提供するために.properties使用して読み取る必要があります。java.util.Properties

JavaでUnicode文字を読むも読んでください

于 2012-06-08T14:02:50.810 に答える