有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

vim无法使用Java将拉丁文大写字母A写入文件

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


共 (1) 个答案

  1. # 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?