重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

FileOutputStream fos = new FileOutputStream("test");
OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8");
out.write("なに");
out.close();
fos.close();

以上のコードを実行させて、ファイルtestをUTF8で開いたら、文字化けしています。どう直したらいいですか?

A 回答 (3件)

OutputStreamWriterの文字コード指定は、通常の文字はサポートしているようですが「トン」や「(4)」のような環境依存文字は文字化けしてしまうようです。


指定せず、使うことをおすすめします。

この回答への補足

なるほど、指定しなければ、直りました。

補足日時:2009/11/18 11:11
    • good
    • 0

> 「トン」や「(4)」のような環境依存文字は



どちらの文字もUnicodeに含まれているのでUTF-8にするのは問題ありません。
前者がUnicodeで0x3327、UTF-8ではE3 8C A7
後者がUnicodeで0x2477、UTF-8ではE2 91 B7です。
    • good
    • 0

出力されたtestを16進ダンプして、その内容が


E3 81 AA E3 81 AB
となっていれば、Javaのコードには問題ありません。
文字列が短すぎて、そのファイルを開くときの文字コード自動判定に失敗しているだけでしょう。

この回答への補足

E7 B8 BA EF BD AA E7 B8 BA EF BD ABでした

補足日時:2009/11/18 11:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!