无法写拉丁语资本使用Java将字母写入文件

时间:2017-03-05 18:59:42

标签: java vim bufferedwriter

File file = new File("file.txt");
BufferedWriter output=new BufferedWriter(new Filewriter(file));

output.write("data fetched from database");

我从数据库中获取数据,该数据映射到相应的DTO对象,并使用DTO对象的getter将其写入文件。

它对于普通数据工作正常,但对于以下数据失败:

DB中的单词是:KÄRNTEN。

当我在Windows中用记事本打开文件时,它是正确的。

当我在vi或vim编辑器中打开时,在KÄ之后,它将转到一个新行并写下剩余的行。

当我在Windows中的wordpad或csv文件中打开时,它显示为:KÓRNTEN。

1 个答案:

答案 0 :(得分:0)

效果看起来像是以UTF-8格式获取数据,但将其读作ISO-8859。

尝试

Writer out = new BufferedWriter(new OutputStreamWriter(
             new FileOutputStream("file.txt"), "ISO-8859-1"));
try {
   out.write("data fetched from database:" + yourFetchedData);
} finally {
   out.close();
}

另见How to write a UTF-8 file with Java?