「joh 1:1ஆதியிலேவார்த்தை、அந்த、அந்த、அந்த、அந்ததேவனாயிருந்தது」などの文字があるファイルがあります。
www.unicode.org/charts/PDF/U0B80.pdf </p>
次のコードを使用すると:
bufferedWriter = new BufferedWriter (new OutputStreamWriter(System.out, "UTF8"));
出力は、次のようなボックスとその他の奇妙な文字です。
「�P�^�����������;�<�aY� ؛」
誰でも助けることができますか?
これらは完全なコードです:
File f=new File("E:\\bible.docx");
Reader decoded=new InputStreamReader(new FileInputStream(f), StandardCharsets.UTF_8);
bufferedWriter = new BufferedWriter (new OutputStreamWriter(System.out, StandardCharsets.UTF_8));
char[] buffer = new char[1024];
int n;
StringBuilder build=new StringBuilder();
while(true){
n=decoded.read(buffer);
if(n<0){break;}
build.append(buffer,0,n);
bufferedWriter.write(buffer);
}
StringBuilder の値には UTF 文字が表示されますが、ウィンドウに表示するとボックスとして表示されます。
問題の答えが見つかりました!!! エンコーディングは正しい (つまり UTF-8) Java はファイルを UTF-8 として読み取り、文字列文字は UTF-8 です。問題は、netbeans の出力パネルに表示するフォントがないことです。出力パネルのフォントを変更した後 (Netbeans->tools->options->misc->output タブ)、期待どおりの結果が得られました。JTextAreaに表示する場合も同様です(フォントの変更が必要です)。ただし、Windows のコマンド プロンプトのフォントを変更することはできません。