7

「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 のコマンド プロンプトのフォントを変更することはできません。

4

3 に答える 3

1

System.outオペレーティングシステムに近すぎて、十分な汎用性がありません。あなたの場合、NetBeans コンソールはおそらくオペレーティング システムのエンコーディングを使用しており、IDE が選択したフォントを使用しています。

最初にファイルに書き込みます。HTML にする場合は、ダブルクリックして、内部で適切なエンコーディングを指定することもできます。「UTF-8」はJava固有のものであるため、「UTF-8」を使用することに注意してください(「UTF-8」はJavaでも使用できます)。たぶんJDesktop.getDesktop().open("... .html");

JTextPane を持つ小さな JFrame も同様です。

于 2013-08-01T13:03:11.077 に答える