gpt4 book ai didi

perl - 使用 Perl 从 Excel 电子表格中读取法语字符

转载 作者:行者123 更新时间:2023-12-05 01:13:25 29 4
gpt4 key购买 nike

我正在使用 Spreadsheet::ParseExcel 解析 Excel 电子表格文件,如下所示

my $FileName = "../excel.xls";
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->parse($FileName);

并像这样从单元格中读取值
$product = $worksheeto->get_cell( $row, 0 )->value();

问题是,当有法语字符时,例如 à ,它显示 ò
为了确保我使用的解析没有错误
print unpack('H*', $product) . "\n";

因此,当我使用任何在线十六进制到字符串转换器时,我会得到 à .

我也试过
use utf8;
binmode(STDOUT, ":utf8");

但不是 à我得到
有没有办法获得正确的字符?

最佳答案

尝试使用格式化程序解析文件,例如 Spreadsheet::ParseExcel::FmtUnicode :

use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::FmtUnicode;
#use Spreadsheet::ParseExcel::FmtJapan;

my $FileName = '../excel.xls';
my $parser = Spreadsheet::ParseExcel->new();
my $formatter = Spreadsheet::ParseExcel::FmtUnicode->new();
my $workbook = $parser->parse($FileName,$formatter);

也可以试试 FmtJapan,因为 documentation says : Spreadsheet::ParseExcel::FmtJapan 格式化程序也支持 Unicode。如果您在使用默认格式化程序时遇到任何编码问题,请尝试使用它。

*更新:
我自己在带有希腊字符的 xls 文件中尝试了它,但它不适用于 FmtUnicode 或 FmtJapan 。然后我发现了这个 perlmonks post , 使用了提供的 My::Excel::FmtUTF8模块并在使用 $cell->value() 打印单元格的值时成功运行.

关于perl - 使用 Perl 从 Excel 电子表格中读取法语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115694/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com