我正在尝试读取字符:“从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
}
答案 0 :(得分:-1)
这不是BufferedReader
的问题。这可能是FileReader
或其中System.out
打印的问题,因为它是代码页问题。
当FileReader
正在读取文件时,如果您在美国使用Windows,则会在默认代码页中读取,通常是Windows-1252。
真正的问题是您的文件包含非ASCII引号。 Unicode有很多不同的引号。 See here for list。最常见的是:
"
QUOTATION MARK (U+0022) - 这是普通的ASCII字符“
LEFT DOUBLE QUOTATION MARK (U+201C) ”
RIGHT DOUBLE QUOTATION MARK (U+201D) 如果您的文件包含最后两个中的任何一个,并且您的控制台无法显示这些文件,您将看到表示字符映射失败的框。