【问题标题】:phpspreadsheet can't read Chinese word when read csv filephpspreadsheet在读取csv文件时无法读取中文单词
【发布时间】:2019-05-02 05:31:39
【问题描述】:

我正在使用 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');,但没有成功。

【问题讨论】:

    标签: phpspreadsheet


    【解决方案1】:

    如果是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);
    

    【讨论】:

      【解决方案2】:

      您几乎肯定需要使用 csv 阅读器的 setInputEncoding() 方法告诉 PHPSpreadsheet csv 文件使用什么编码

      【讨论】:

        猜你喜欢
        • 2021-04-01
        • 2019-05-18
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 2021-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多