2012-12-25 25 views
11

私はJavaプログラムをコマンドライン(Windows 7)から起動しています。問題を簡略化するために、関連する部分のみを説明します。System.out文字エンコーディング

public static void main(String[] args) { 
    System.out.println("Árpád"); 
} 

私の出力はゴミです。明らかに文字エンコーディングの問題ですが、Áとáのハンガリー語の文字は正しく表示されません。私は以下を試しました:

public static void main(String[] args) { 
    PrintStream ps = new PrintStream(System.out, true, "UTF-8"); 
    ps.println("Árpád"); 
} 

私の出力はまだゴミです。この文字エンコードの問題をWindows 7のコマンドラインで解決するにはどうすればよいですか?おかげ

+1

コンパイルに問題はありませんか?どのようにコンパイルしていますか、ソースコードはどのようなエンコーディングですか? –

+1

あなたのディスプレイは実際にそのような文字の表示をサポートしていますか?つまり、このディスプレイにキーボードで入力すると、正しく表示されますか? – fge

+0

NetBeansでコンパイルしていて、ソースの文字エンコーディングがUTF-8です –

答えて

15

私は、コマンドライン上で指定するだけSystem.out.printlnを使用することによって、そのエンコーディングでまたはPrintStreamバージョンを使用して、その後いずれかコマンドラインから右のエンコーディングを見つけることによって動作するようにあなたのコードを得た、と。

コマンドラインでエンコーディングを見つけるには、chcpを実行してください。

Active code page: 850 

「IBM850」のJavaの文字セット名に対応:ここで私が得た出力です。これにより、コマンドラインに適切な出力が作成されます。

java -Dfile.encoding=IBM850 Test 
+1

男!あなたはちょうど素晴らしいです。この答えに+100。 –

+0

+1ありがとうございました、これはほとんど問題を解決しました。小さい文字が正しく表示されていて、大きい文字が正しく表示されていませんでした。 –

+0

@ LajosArpad:どちらも私のために働きます - コンソールはどのコードページを使用していますか? –

関連する問題