GA黄金甲

laravel导入excel中文不显示

在laravel中 ,使用maatwebsite/laravel-excel来处置惩罚excel文件是一种很是利便的要领 。然而 ,有时当导入的excel文件包括中文时 ,laravel无法准确地将中文字符显示在数据库中 。本文将探讨这个问题 ,并提供一些解决计划 。

问题形貌

当使用Maatwebsite/Laravel-Excel将表格导入Laravel应用程序时 ,有时中文字符会泛起乱码或显示过失的情形 。这个问题通常泛起在以下情形中:

数据库编码不匹配:若是数据库的编码方法与Excel文件中的编码方法纷歧致 ,就会导致中文字符被破损 。

Excel文件编码过失:若是Excel文件中的编码方法与现实的编码方法纷歧致 ,也会导致中文字符被破损 。

解决计划

检查数据库编码

在Laravel中 ,数据库编码是与AppServiceProvider.php文件相关的 。你可以在该文件中设置数据库编码 。若是你使用的是MySQL数据库 ,可以在该文件中设置:

use IlluminateSupportServiceProvider;

use IlluminateSupportFacadesSchema;

class AppServiceProvider extends ServiceProvider

{

public function boot()
{
    Schema::defaultStringLength(191);
    DB::statement('SET NAMES utf8mb4');
    DB::statement('SET CHARACTER SET utf8mb4');
}

登录后复制

}

在上述代码中 ,我们已将数据库编码设置为utf8mb4 ,将该文件中的编码设置为与Excel文件相同即可解决问题 。

检查Excel文件编码

若是你的Excel文件中的编码方法与现实的编码方法纷歧致 ,那么导入的时间就会泛起中文乱码的问题 。因此 ,在导入Excel文件之前 ,我们需要确保Excel文件的编码方法是准确的 。一种简朴的要领是:

在翻开Excel文件之前 ,先将其另存为TXT文件 ,然后再导入TXT文件 ,这样可以确保编码准确 。

例如:

$reader = MaatwebsiteExcelExcel::load(‘excel.xls’)->toCsv(‘excel.csv’);

$csvData = file_get_contents(‘excel.csv’);

$csvData = mb_convert_encoding($csvData, ‘UTF-8’, ‘UTF-8’);

$csvFile = fopen(‘excel.csv’, ‘w’);

fwrite($csvFile, $csvData);

fclose($csvFile);

$reader = MaatwebsiteExcelExcel::load(‘excel.csv’)->get();

在这个例子中 ,我们将Excel文件转换为CSV文件 ,然后将其转换为UTF-8编码 。请注重 ,这种要领并不是最好的要领 ,为了确保数据的准确性 ,你可能需要做更多的调解 。

结论

处置惩罚中文字符的问题并不是一件容易的事情 。可是 ,经由本文的讨论 ,我们已经相识了基本的解决计划 。若是你仍然遇到了中文字符导入过失的问题 ,请坚持检查你的数据库编码和Excel文件编码 ,并举行须要的调解 。

以上就是laravel导入excel中文不显示的详细内容 ,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理 ,版权争议与本站无关 ,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度 ,请读者仅做参考 。本文接待转载 ,转载请说明来由 。若您以为本文侵占了您的版权信息 ,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息 ,请您连忙联系GA黄金甲实时修正或删除 。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五 ,9:30-18:30 ,节沐日休息

QR code
【网站地图】【sitemap】