phpspreadsheet не может прочитать китайское слово при чтении CSV-файла - PullRequest
0 голосов
/ 30 ноября 2018

Я использую PhpSpreadsheet для чтения файлов (csv, xls, xlsx).Но когда я читаю CSV-файлы, содержимое китайского слова не читается (оно пустое). введите описание изображения здесь

Этот CSV-файл: введите описание изображения здесь

Это мой код:

<?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');, но это не сработало.

Ответы [ 2 ]

0 голосов
/ 29 июля 2019

Если это 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);
0 голосов
/ 09 декабря 2018

Вам почти наверняка нужно сообщить PHPSpreadsheet, какая кодировка используется для файла csv, используя setInputEncoding() метод

программы чтения csv.
...