1

我有一个包含文本(乌克兰符号)的文件。示例:${name} - привіт。我需要替换 from${name}Саша。但在输出文件中,我收到这样的内容:пÑ??Ð¸Ð²ÐµÑ - привіт而不是Саша- привіт. 但是如果我使用 .txt 而不是 .rtf - 一切都很好。我理解编码中的问题,但无法解决。

代码示例:

File file = new File("original.rtf");
String content = FileUtils.readFileToString(file);

content = content.replace("${name}", "Саша");

File fileNew = new File("changed.rtf");
FileOutputStream fop = new FileOutputStream(fileNew);

byte[] contentInBytes = content.getBytes("UTF-8");
fop.write(contentInBytes);
fop.flush();
fop.close();
4

1 回答 1

4

http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html#readFileToString%28java.io.File%29

已弃用。2.5 改用readFileToString (File, Charset)

此外,请确保 Java 编译器使用与存储相同的编码(推荐使用 UTF-8)读取 Java 源代码,并带有-encoding开关。

于 2014-05-16T13:52:32.520 回答