如何让PrintWriter编写UTF-8?

时间:2014-01-13 16:30:33

标签: java 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

6 个答案:

答案 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