org.apache.commons.io.FileUtils - 更改文本编码

时间:2014-05-16 13:48:37

标签: java rtf fileutils

我有一个包含文本(乌克兰符号)的文件。示例:${name} - привіт。我需要从${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();

1 个答案:

答案 0 :(得分:2)

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编译器使用与-encoding开关存储的(UTF-8推荐)相同的编码来读取Java源代码。