2016-04-08 14 views
0

私はこのコードを持っている:JavaのUTF-8エンコーディング

BufferedWriter w = Files.newWriter(file, Charsets.UTF_8); 
w.newLine(); 
StringBuilder sb = new StringBuilder(); 
sb.append("\"").append("éééé").append("\";") 
w.write(sb.toString()); 

をしかし、それは動作していません。最後に私のファイルにはUTF-8エンコーディングはありません。

w.write(new String(sb.toString().getBytes(Charsets.US_ASCII), "UTF8")); 

をので、私は最初のBOMのcharcater(http://bugs.java.com/view_bug.do?bug_id=4508058)の認識に関するバグがあったことが判明

...それはマークがファイルにどこにでも現れる質問をした:書くとき、私はこれを実行しようとしました私はBOMInputStreamクラスを使ってみました。しかし、bomIn.hasBOM()は常にfalseを返すので、私の問題はおそらくBOM関連ではないと思いますか?

ファイルをUTF-8でエンコードする方法をご存知ですか?問題はJava 8で解決されましたか?ビューアーやツールを使用すると、doesnのファイルを表示するために使用していること

問題がある(あなたが重複した文字列から文字列を作成しているが)あなたは、あなたの最初の例では、正しくUTF-8書いている

+1

あなたの実際の問題が何であるかを理解することは難しいです。実際のコード、入力、出力を表示してください。 UTF-8はJavaでうまく動作しますし、もちろん 'sb.toString()。getBytes(Charsets.US_ASCII)'は疑問符をたくさん生成します。US_ASCIIは0 .. 127の文字しかサポートしないので、他はすべて無効です。疑問符。 UTF-8でのBOMの使用もお勧めしません。 –

+0

確かに動作します。あなたの 'BufferedWriter'が作成されたら、あなたは' w.write( "Hello、ööå"); w.close(); 'ファイルがUTF-8でエンコードされていることを保証します。 – Kayaman

+0

"ファイル内のどこにでも疑問符が表示されました..." - 問題は実際にファイルを見る場所です。 – Gimby

答えて

1

ファイルをUTF-8として読み込みません。

ASCIIで混在しないでください。ASCII以外のすべてのバイトが疑問符に変換されます。

関連する問題