如何让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
答案 0 :(得分:45)
使用OutputStreamWriter
:
pstream = new PrintWriter(new OutputStreamWriter(
csocket.getOutputStream(), StandardCharsets.UTF_8), true)
答案 1 :(得分:4)
OutputStream os = new FileOutputStream("file.txt");
PrintWriter pw = new PrintWriter(new OutputStreamWriter(os, "UTF-8"));
答案 2 :(得分:2)
查看Java: Difference between PrintStream and PrintWriter讨论。
要快速:您可以使用-Dfile.encoding = utf8 JVM参数或讨论中建议的方法(参见第二个答案)。
答案 3 :(得分:2)
请勿使用PrintWriter。如果您需要UTF-8编码,只需直接写入OutputStream。
csocket.getOutputStream().write(res.getBytes("UTF-8"));
答案 4 :(得分:1)
while *script_first_ran_time*!=*script_first_ran_time+30minutes*
答案 5 :(得分:0)
您只能使用任何字符集写入文件,否则使用平台默认字符集请参阅doc