无法使用Java将拉丁文大写字母A写入文件 File File=新文件(“File.txt”); BufferedWriter输出=新的BufferedWriter(新的Filewriter(文件)); output.write(“从数据库获取的数据”);

无法使用Java将拉丁文大写字母A写入文件 File File=新文件(“File.txt”); BufferedWriter输出=新的BufferedWriter(新的Filewriter(文件)); output.write(“从数据库获取的数据”);,java,vim,bufferedwriter,Java,Vim,Bufferedwriter,我从映射到相应DTO对象的数据库中获取数据,并使用DTO对象的getter将数据写入文件 对于正常数据,它工作正常,但对于以下数据,它失败: DB中的单词是:KÄRNTEN 当我在记事本中打开Windows中的文件时,它是正确的 当我在vi或vim编辑器中打开KÄ之后,它将进入一个新行并写入剩余的内容 当我在wordpad或Windows中的csv文件中打开时,它显示为:KÃRNTEN。效果看起来像是以UTF-8的形式获取数据,但以ISO-8859的形式读取 试一试 另请参见看起来像编码问题是的

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

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

DB中的单词是:KÄRNTEN

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

当我在vi或vim编辑器中打开KÄ之后,它将进入一个新行并写入剩余的内容


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

效果看起来像是以UTF-8的形式获取数据,但以ISO-8859的形式读取

试一试


另请参见

看起来像编码问题是的,它可能是重复的。现在,在我更改putty终端的翻译设置后,它工作得很好。我甚至尝试过OutStreamWriter,但没有成功。后来,我发现这不是文件的问题。我更改了putty的终端设置,现在,数据看起来很干净。在终端上,更改设置-->转换-->并从下拉列表中选择UTF-8。
Writer out = new BufferedWriter(new OutputStreamWriter(
             new FileOutputStream("file.txt"), "ISO-8859-1"));
try {
   out.write("data fetched from database:" + yourFetchedData);
} finally {
   out.close();
}