PhpOffice\PhpSpreadsheet 从 excel 错误字符集中导入 mysql

Posted

技术标签:

【中文标题】PhpOffice\\PhpSpreadsheet 从 excel 错误字符集中导入 mysql【英文标题】:PhpOffice\PhpSpreadsheet import mysql from excel error charsetPhpOffice\PhpSpreadsheet 从 excel 错误字符集中导入 mysql 【发布时间】:2020-09-21 03:17:23 【问题描述】:

我的 excel 文件包含越南语数据:

Tính tiền | Việt Nam

当我使用 phpOffice\PhpSpreadsheet 将数据导入 mysql 时,错误数据可能是“Tính ti?n” | “越南”。 我曾尝试像这样更改代码 setInputEncoding:

$allowed_extension = array('xls', 'csv', 'xlsx');
$file_array = explode(".", $_FILES["import_excel"]["name"]);
$file_extension = end($file_array);
$file_name = time() . '.' . $file_extension;
move_uploaded_file($_FILES['import_excel']['tmp_name'], $file_name);
$file_type = \PhpOffice\PhpSpreadsheet\IOFactory::identify($file_name);
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($file_type);

$reader->setInputEncoding('utf-8');
/$reader->setInputEncoding('CP1252');

还是不行,我需要帮助...谢谢!!

【问题讨论】:

【参考方案1】:

尝试设置正确的输入编码,无论电子表格有什么;例如:

$reader->setInputEncoding('CP1258');

【讨论】:

【参考方案2】:

你必须看到使用了 utf8 参见 FAQ 和 documentation

【讨论】:

以上是关于PhpOffice\PhpSpreadsheet 从 excel 错误字符集中导入 mysql的主要内容,如果未能解决你的问题,请参考以下文章

phpoffice/phpspreadsheet对Excel导入导出操作

作曲家需要 phpoffice/phpspreadsheet 不起作用

PhpOffice\PhpSpreadsheet 从 excel 错误字符集中导入 mysql

phpoffice/phpspreadsheet - 如何从 getHighestRow() 中排除无值单元格

phpoffice/phpspreadsheet读取Excel内的图片

#yyds干货盘点#Hyperf结合PhpOffice/PhpSpreadsheet实现Excel&CSV文件导出导入