【发布时间】:2021-09-23 20:05:10
【问题描述】:
我正在使用我在 Ubuntu 上阅读的 Perl 的 Text::CSV_XS 包读取文件:
open my $fh, '<:encoding(utf8)', 'file.csv' or die "Can't read csv: $!"; # error shows on this line
while (my $row = $list->getline ($fh)) {
....
}
这读起来很好,直到一行出现错误:
UTF-8 "\xE9" does not map to Unicode at 0.xlsx_to_json.pl line 198, <$_[...]> line 14019.
在网上看,这表明这是一个ê字符或类似的东西,这很奇怪,因为我在第14109行没有看到任何这样的字符,该行看起来就像任何其他行一样。
-
我尝试将开放行更改为
打开我的 $fh, '
但这给出了同样的错误。
-
我尝试打开 CSV 并使用不同的分隔符另存为 CSV,但我不能再在 Excel 2016 中执行此操作,更改分隔符的选项根本不会出现
-
我尝试在 LibreOffice 中打开以另存为 CSV,但更新删除了更改分隔符的功能
如何读取这个 CSV 文件而不出现这个奇怪的错误?
【问题讨论】:
-
Re "这表明这是一个ê字符",不,这根本不是暗示。 ê 使用 UTF-8 编码是 C3 AA,但是文件中的 E9 有问题