使用 java 读取 unicode 文本文件

2022-09-03 17:32:11

真正简单的问题。我需要在Java程序中读取Unicode文本文件。

我习惯于将纯ASCII文本与BufferedReader FileReader组合一起使用,这显然不能:(

我知道我可以使用缓冲读取器以“传统”方式读取字符串,然后使用如下方式进行转换:

temp = new String(temp.getBytes(), "UTF-16");

但是有没有办法将阅读器包装在“转换器”中?

编辑:文件以FF FE开头


答案 1

你不会包装阅读器,而是使用输入流阅读器包装流。然后,您可以使用当前使用的缓冲阅读器将其包装

BufferedReader in = new BufferedReader(new InputStreamReader(stream, encoding));

答案 2

检查 https://docs.oracle.com/javase/1.5.0/docs/api/java/io/InputStreamReader.html

我会用这样的东西来读取源文件:

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