Tôi đang sử dụng Spreadsheet::ParseExcel
để phân tích một tập tin bảng tính Excel như sauSử dụng Perl để đọc các ký tự tiếng Pháp từ một bảng tính Excel
my $FileName = "../excel.xls";
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->parse($FileName);
Và đọc các giá trị từ các tế bào như thế này
$product = $worksheeto->get_cell($row, 0)->value();
Vấn đề là rằng, khi có một ký tự tiếng Pháp, ví dụ: à
, nó hiển thị ò
Để chắc chắn rằng ở đó tôi s không có lỗi trong phân tích cú pháp tôi sử dụng
print unpack('H*', $product) . "\n";
Vì vậy, khi tôi sử dụng bất kỳ hex trực tuyến để chuyển đổi chuỗi tôi làm được à
.
Tôi cũng đã cố gắng
use utf8;
binmode(STDOUT, ":utf8");
nhưng thay vì à
tôi nhận được +á
Có cách nào để có được những nhân vật có đúng không?
Tôi đã thử 'FmtJapan', nhưng không hoạt động, tôi không sử dụng' FmtUnicode' nghĩ rằng nó là theo mặc định, tôi sẽ thử nó ngay bây giờ và cho bạn biết kết quả. – Mugiwara
Mặc định có vẻ là 'FmtDefault' – psxls
Có bạn đúng, nhưng ngay cả với' FmtUnicode' tôi cũng nhận được kết quả tương tự như 'binmode (STDOUT,": utf8 ");' có nghĩa là '├á', vấn đề là tôi đang chuyển nó đến một chức năng khác cần 'à':/ – Mugiwara