【问题标题】:unable to write latin capital A letters into a file using Java无法使用 Java 将拉丁大写字母 A 写入文件
【发布时间】:2017-03-05 18:59:42
【问题描述】:
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 的写字板或 csv 文件中打开时,它显示为:KÄRNTEN。

【问题讨论】:

标签: java vim bufferedwriter


【解决方案1】:

效果看起来像您以 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?

【讨论】:

  • 我什至尝试过 OutStreamWriter 但没有运气。后来,我发现不是文件的问题。我改变了putty的终端设置,现在数据看起来很干净。在终端上,更改设置-->翻译--> 并从下拉列表中选择 UTF-8。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 2021-12-18
  • 2016-08-29
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 2018-07-07
相关资源
最近更新 更多