Java 在linux上Windows works上的Excel中无法正确显示西班牙语特殊字符

Java 在linux上Windows works上的Excel中无法正确显示西班牙语特殊字符,java,linux,windows,encoding,utf-8,Java,Linux,Windows,Encoding,Utf 8,我的oracle数据库中有西班牙语数据(charectorset AL32UTF8)。我正在从数据库中读取数据并写入csv文件,从csv中再次读取数据并执行一些操作。但是在csv文件中,它显示的是垃圾值 我在linux上也做了同样的事情,它工作正常 public class T { CSVWriter out = null; private void write(String[] values) throws IOException { out.writeNe

我的oracle数据库中有西班牙语数据(charectorset AL32UTF8)。我正在从数据库中读取数据并写入
csv
文件,从
csv
中再次读取数据并执行一些操作。但是在
csv
文件中,它显示的是垃圾值

我在linux上也做了同样的事情,它工作正常

public class T {

    CSVWriter out = null;

    private void write(String[] values) throws IOException {
        out.writeNext(values);
    }

    public static void main(String[] args) throws IOException {

        File f  = new File("s.csv");

        FileOutputStream os = new FileOutputStream(f, false);

        CSVWriter out = new CSVWriter(
            new BufferedWriter(
                new OutputStreamWriter(
                    os, "UTF-8")));
    }
}

打开CSV文件时,必须告诉Excel使用正确的编码

见下文:


打开CSV文件时,必须告诉Excel使用正确的编码

见下文:


您是否尝试指定编码?如何读取post code我猜,Windows上的系统字符集(EXCEL用来读取CSV文件)不是UTF-8。您是说linux字符集是utf8,所以它在linux上工作?@Henry是linux的utf8默认编码?。如何使用excel以utf8格式打开文件?我试着指定BOM也试着指定编码了吗?后代码你是如何读取的mm,我猜,Windows上的系统字符集(EXCEL用来读取CSV文件)不是UTF-8。你是说linux字符集是utf8,所以它在linux上工作?@Henry是linux的utf8默认编码?。如何使用excel以utf8格式打开文件?我试图指定BOM,但我不想手动执行,java应该正确读取excel。从代码中,我看到您在创建csv文件时正确使用了UTF-8。然后,在Java中打开/读取CSV文件时,只缺少使用“UTF-8”。BufferedReader in=新的BufferedReader(新的InputStreamReader(新的文件InputStream(“您的CSV文件在这里”),“UTF8”);我不想手动操作,java应该正确地读取excel。从代码中,我看到您在创建csv文件时正确地使用了UTF-8。然后,在Java中打开/读取CSV文件时,只缺少使用“UTF-8”。BufferedReader in=新的BufferedReader(新的InputStreamReader(新的文件InputStream(“您的CSV文件在这里”),“UTF8”);