BufferedReader不读取引号字符

时间:2016-02-21 23:31:16

标签: java string special-characters bufferedreader quotes

我正在尝试读取字符:“从BufferedReader到字符串。但是,它将引号字符显示为方框。

            //Opens file
            File file = fc.getSelectedFile();
            //filePath
            String filePath = file.getPath();

            //Holds a line of text from the file
            String line = null;

            try
            {
                //Reads text from file
                FileReader fileReader = new FileReader(filePath);
                BufferedReader bufferedReader = new BufferedReader(fileReader);

                //Reads each line onto the left text area (encryptMessageTA)
                while ((line = bufferedReader.readLine()) != null)
                {
                    System.out.println(line);
                }
            }
            //File not found
            catch (FileNotFoundException ex)
            {
                System.out.println(ex.getMessage()); //prints exception
            } 
            //Input/Output exception
            catch (IOException ex)
            {
                System.out.println(ex.getMessage()); //prints exception
            }

1 个答案:

答案 0 :(得分:-1)

这不是BufferedReader的问题。这可能是FileReader或其中System.out打印的问题,因为它是代码页问题。

FileReader正在读取文件时,如果您在美国使用Windows,则会在默认代码页中读取,通常是Windows-1252。

真正的问题是您的文件包含非ASCII引号。 Unicode有很多不同的引号。 See here for list。最常见的是:

如果您的文件包含最后两个中的任何一个,并且您的控制台无法显示这些文件,您将看到表示字符映射失败的框。