如果我要编码windows-1252格式的数据并将其写入文件,如何在java中设置内容类型?
答案 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"
。)