java - 为什么我得到?当我尝试从 java 的文本文件中读取 ä 字符时?

标签 java string bufferedreader inputstreamreader

我正在尝试从文本文件中读取文本。有一些特殊字符,如 å、ä 和 ö。当我制作一个字符串并打印出该字符串时,我得到了?来自这些特殊字符。我正在使用以下代码:

File fileDir = new File("files/myfile.txt");

BufferedReader br = new BufferedReader(new InputStreamReader(
                      new FileInputStream(fileDir), "UTF8"));

String strLine;
while ((strLine = br.readLine()) != null)   {
    System.out.println("strLine: "+strLine);
}

谁能告诉我出了什么问题吗?我希望 strLine 显示并保存 å、ä 和 ö,因为它们在文本文件中。提前致谢。

最佳答案

问题可能不在于文件,而在于您尝试打​​印的控制台。我建议您按照以下步骤操作

  1. 确保您正在读取的文件采用 UTF-8 编码。
  2. 确保您要打印的控制台具有正确的编码/字符集来显示这些字符

最后这篇文章Unicode - How to get characters right?是必读的。

关于java - 为什么我得到?当我尝试从 java 的文本文件中读取 ä 字符时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801543/

相关文章:

version - 我需要安装JRE8吗

java - 在java中使用哈希码比较两个大字符串?

c++ - 如何在 C++ 中通过内置的 reverse() 函数存储反转的字符串

Java 标准系统输入和缓冲读取器

android - IOException BufferedInputStream 在 HTC 中关闭

java - Apache 点燃: Possible to get a caches last read time

java调用一个方法的平均时间

c - 为什么下面的代码不能正确输出所有测试用例?

string - objective-c : Insert string into another string at a certain range

java - 将 Java BufferedReader 倒回到文件的开头