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
OutputStreamWriter
を使用します。
pstream = new PrintWriter(new OutputStreamWriter(
csocket.getOutputStream(), StandardCharsets.UTF_8), true)
Java:PrintStreamとPrintWriterの違い の議論をご覧ください。
すばやく:議論で提案されている-Dfile.encoding = utf8 JVMパラメーターまたはメソッドを使用できます(2番目の回答を参照)。
PrintWriterを使用しないでください。 UTF-8エンコードが必要な場合は、OutputStreamに直接書き込みます。
csocket.getOutputStream().write(res.getBytes("UTF-8"));
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);
}
任意の文字セットでのみファイルに書き込むことができます。そうでない場合は、プラットフォームのデフォルトの文字セットが使用されます doc を参照してください