如何在写入文件时用Java编码到Windows 1252?

时间:2013-08-15 17:37:23

标签: java file

如果我要编码windows-1252格式的数据并将其写入文件,如何在java中设置内容类型?

2 个答案:

答案 0 :(得分:8)

您可以使用OutputStreamWriter

Writer out = new OutputStreamWriter(new FileOutputStream(yourFile), "windows-1252");

使用典型的Writer方法将输出写入文件(或将其包装,或将其声明为OutputStreamWriter)。

构造函数也接受Charset而不是String字符集名称。你可以这样得到它

Charset windows1252 = Charset.forName("windows-1252");

答案 1 :(得分:2)

您需要指定编码。根据{{​​3}},您应该在使用"Cp1252"java.io类时使用java.lang,并且在使用"windows-1252"类时应使用java.nio。< / p>

所以,例如,你可以这样做:

File file = . . .;
Writer output = new PrintWriter(file, "Cp1252");

或者,java.nio,这个:

File file = . . .;
Writer output = Files.newBufferedWriter(file.toPath(), "windows-1252");

(正如Sotirios在评论中指出的那样,尽管文档说的话,你仍然可以使用"windows-1252"。)