2012-01-25 8 views
2

私はテキストファイルに1文字を書き込もうとしています。Javaで単一の文字を書く際の不思議な違い

私が行います

BufferedWriter out = new BufferedWriter(new FileWriter("exemple.txt")); 
    out.write((char)174); 
    out.close(); 

私のテキストファイルは、私は、バイナリビューアでそれを見れば、10101110が含まれていることになっています。代わりに、11000010 10101110と表示されます。したがって、予想される結果ではない194 174が書き込まれます。

Javaで1文字を書くと、良いバイナリ値を得ることができますか?

+0

127以上のものはASCII文字ではなく、出力時に翻訳されることに注意してください。翻訳を指定する必要があります。そうしないと、おそらく望ましくないものがデフォルトになります。もちろん、文字データではなくバイナリを書くことを目的としている場合は、ファイルをバイナリモードで開く必要があります。 –

答えて

3

適切な文字セットを使用してファイルを開く必要があります。

バイトと文字の違いと文字セットの違いを教える優れたチュートリアルを読むことをお勧めします。

+0

正しい文字セットは "US-ASCII"ではなく "CP1252"です。それは動作します、ありがとう! –

関連する問題