我有一些当前代码,问题是它创建了一个 1252 代码页文件,我想强制它创建一个 UTF-8 文件
任何人都可以帮我处理这段代码,正如我所说的那样,它目前可以工作......但我需要强制保存 utf .. 我可以传递一个参数或其他什么吗?
这就是我所拥有的,任何帮助都非常感谢
var out = new java.io.FileWriter( new java.io.File( path )),
text = new java.lang.String( src || "" );
out.write( text, 0, text.length() );
out.flush();
out.close();
不使用 FileWriter
,而是创建一个 FileOutputStream
。然后,您可以将其包装在 OutputStreamWriter
中,这允许您在构造函数中传递编码。然后您可以将数据写入 try-with-resources Statement 中:
try (OutputStreamWriter writer =
new OutputStreamWriter(new FileOutputStream(PROPERTIES_FILE), StandardCharsets.UTF_8))
// do stuff
}
尝试这个
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("outfilename"), "UTF-8"));
try {
out.write(aString);
} finally {
out.close();
}
Writer out = ...
应更正为 BufferedWriter out = ...
。
尝试使用 Apache Commons 中的 FileUtils.write
。
您应该能够执行以下操作:
File f = new File("output.txt");
FileUtils.writeStringToFile(f, document.outerHtml(), "UTF-8");
如果文件不存在,这将创建该文件。
从 Java 7 开始,您可以更简洁地使用 Files.newBufferedWriter
执行相同的操作:
Path logFile = Paths.get("/tmp/example.txt");
try (BufferedWriter writer = Files.newBufferedWriter(logFile, StandardCharsets.UTF_8)) {
writer.write("Hello World!");
// ...
}
这里给出的所有答案都不起作用,因为 java 的 UTF-8 写作有问题。
http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html
var out = new java.io.PrintWriter(new java.io.File(path), "UTF-8");
text = new java.lang.String( src || "" );
out.print(text);
out.flush();
out.close();
Java 7 Files utility type 对于处理文件很有用:
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.*;
public class WriteReadUtf8 {
public static void main(String[] args) throws IOException {
List<String> lines = Arrays.asList("These", "are", "lines");
Path textFile = Paths.get("foo.txt");
Files.write(textFile, lines, StandardCharsets.UTF_8);
List<String> read = Files.readAllLines(textFile, StandardCharsets.UTF_8);
System.out.println(lines.equals(read));
}
}
Java 8 version 允许您省略 Charset 参数 - 这些方法默认为 UTF-8。
我们可以用 java 编写 UTF-8 编码的文件,使用 PrintWriter 编写 UTF-8 编码的 xml
或点击here
PrintWriter out1 = new PrintWriter(new File("C:\\abc.xml"), "UTF-8");
下面的示例代码可以逐行读取文件并以 UTF-8 格式写入新文件。另外,我明确指定了 Cp1252 编码。
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("c:\\filenonUTF.txt"),
"Cp1252"));
String line;
Writer out = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(
"c:\\fileUTF.txt"), "UTF-8"));
try {
while ((line = br.readLine()) != null) {
out.write(line);
out.write("\n");
}
} finally {
br.close();
out.close();
}
}
不定期副业成功案例分享