web-dev-qa-db-ja.com

UTF-8を書き込むためにPrintWriterを作成する方法は?

PrintWriterを作成してUTF-8を記述する方法は?

pstream = new PrintWriter(csocket.getOutputStream(), true);
String res = "some string";
pstream.println(res); // here I want to output string as UTF-8
40
yeah its me

OutputStreamWriterを使用します。

pstream = new PrintWriter(new OutputStreamWriter(
    csocket.getOutputStream(), StandardCharsets.UTF_8), true)
46
Njol

Java:PrintStreamとPrintWriterの違い の議論をご覧ください。

すばやく:議論で提案されている-Dfile.encoding = utf8 JVMパラメーターまたはメソッドを使用できます(2番目の回答を参照)。

2
Daniil

PrintWriterを使用しないでください。 UTF-8エンコードが必要な場合は、OutputStreamに直接書き込みます。

csocket.getOutputStream().write(res.getBytes("UTF-8"));
2
dave110022
PrintWriter out1 = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KitKat) {
    out1 = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8),true);
} else { 
    out1 = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"), true);
}
1
Shahab Saalami

任意の文字セットでのみファイルに書き込むことができます。そうでない場合は、プラットフォームのデフォルトの文字セットが使用されます doc を参照してください

0
Error