我有一个包含文本(乌克兰符号)的文件。示例:${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();
答案 0 :(得分:2)
已过时。 2.5使用readFileToString(File, Charset)代替
此外,请确保java编译器使用与-encoding
开关存储的(UTF-8推荐)相同的编码来读取Java源代码。