1

我正在使用 Apache File Utilities 从 .sql 文件中读取以下行。

INSERT INTO tablename (MESSAGE) VALUE('将£ [%1] 转移到以下 [%2]:');

但阅读后我得到以下信息:

'将 �[%1] 转移到以下 [%2]:'

问题: * £ * 被读入为 �</p>

我正在使用以下代码逐行读取文件:

LineIterator it = FileUtils.lineIterator(file, "UTF-8");
while (it.hasNext()) {
                lineCount++;
                line = it.nextLine();
                System.out.println(line);

打印行显示为:将“[%1] 转移到以下 [%2]:”

当我在 Netbeans 中看到变量 watch 时,它显示 char 为 \ufffd

我读错了编码吗?

是否有任何编码可以用于读取 SQL 查询?

4

1 回答 1

1

听起来您为文件选择了错误的编码。通过尝试使用您的代码示例读取 ISO 8859-1 编码文件,我能够重现您的问题。

您需要确定文本文件的编码并相应地调整您的字符集。例如

LineIterator it = FileUtils.lineIterator(file, Charsets.ISO_8859_1.name());

可悲的是,确定编码不是您可以自动完成的。您需要被明确告知编码是什么。

于 2013-04-29T12:41:09.573 回答