BufferedReader创建奇数字符,我使用哪种字符编码?

时间:2015-11-20 05:21:25

标签: java character-encoding bufferedreader

我正在尝试将多个文本文件合并到一个新文件中。但是,查看创建的新文件有一些奇怪的字符已经替换了引号,我无法弄清楚为什么或如何发生这种情况。尝试指定编码,但它没有解决问题。我使用错误的字符编码吗?

Reader reader = new InputStreamReader(new FileInputStream(fileName), "utf-8");

问题在于:

原始文件包含:

|3_PatFemale("X")|3_PatSex (”M” or “F”)|

新文件包含

|3_PatFemale("X")|3_PatSex (�M� or �F�)|

代码:

BufferedWriter out =  new BufferedWriter(new OutputStreamWriter(new FileOutputStream(exportFile),"UTF-8"));

for (File f : files) {
        FileInputStream fis;
        try {
            fis = new FileInputStream(f);
            BufferedReader in = new BufferedReader(new InputStreamReader(fis));

            String aLine;
            while ((aLine = in.readLine()) != null) {
                out.write(aLine);
                out.newLine();
            }

            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

1 个答案:

答案 0 :(得分:1)

从此

更改文件的内容
|3_PatFemale("X")|3_PatSex (”M” or “F”)|

|3_PatFemale("X")|3_PatSex ("M" or "F")|

您正在使用的报价

(主要引号)

不同
" 

供进一步参考:https://askleo.com/why_do_i_get_odd_characters_instead_of_quotes_in_my_documents/