我正在使用PhpSpreadsheet读取文件(csv,xls,xlsx)。 但是,当我读取csv文件时,中文单词的内容无法读取(为空)。 enter image description here
此csv文件: enter image description here
这是我的代码:
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\Xls;
use PhpOffice\PhpSpreadsheet\Reader\Csv;
$inputFileName = 'input1.csv';
//load files
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);
//change the file to array
$sheetData = $spreadsheet->getActiveSheet()->toArray(null,true,true,true);
print_r($sheetData);
?>
我尝试过setlocale(LC_ALL, 'zh_TW.UTF-8 UTF-8');
,但是没有用。
答案 0 :(得分:0)
您几乎可以肯定需要使用csv阅读器的setInputEncoding()
方法告诉PHPSpreadsheet csv文件使用什么编码
答案 1 :(得分:0)
如果是csv文件,则可以尝试以下代码:
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
$reader->setInputEncoding('GBK'); //this line would internally convert chinese gbk to utf-8 encoding
$spreadsheet = $reader->load($excelFile);
$data = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);