【问题标题】:Read special symbols from file从文件中读取特殊符号
【发布时间】:2012-12-14 09:22:30
【问题描述】:

我正在尝试使用 Java 读取文件,并且该文件还包含特殊字符。 我正在尝试将文件的内容写入另一个文件。

读取特殊字符文件的解决方法是什么?

【问题讨论】:

  • 特殊字符是什么意思?
  • 文件的编码是什么?
  • 特殊字符如―和“和文件使用UTF8编码风格

标签: java file io


【解决方案1】:

以 UTF-8 编码文件并使用 java 编码感知流操作符:

new InputStreamReader(new FileInputStream(file), "UTF-8")

【讨论】:

  • 如果文件没有UTF-8编码怎么办?
  • 另一种“常用”编码是 Windows Latin-1,“Windows-1252”
  • @Joop Eggen 然后按照这个步骤stackoverflow.com/questions/499010/…
  • 我正在使用代码 FileReader fr= new FileReader(new File("path of the file")); BufferedReader br= new BufferedReader(fr);那么在哪里通过编码标准。
  • 看@Sumit Singh 发给你的答案
【解决方案2】:

您需要找出文件使用的确切编码,然后在InputStreamReader 参数中指定。

尽管如此,通常最好通过将带有 InputStreamReader 的 InputStream 包装到 Reader 或 BufferedReader 中来读取字符数据

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(your file), "UTF-8"));

编辑评论:
FileReader 使用 Java 的平台默认编码,这取决于运行它的计算机的系统设置。

很遗憾FileReader 不允许设置编码。相反,您必须使用上述代码来获取文件的期望编码。

【讨论】:

  • 你是对的。但这有点题外话了。问题是关于编码而不是效率。
  • 我已经检查过文件使用的是 UTF8 编码标准,但它没有读取特殊字符
猜你喜欢
  • 2021-12-08
  • 1970-01-01
  • 2020-05-03
  • 2015-01-28
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
相关资源
最近更新 更多