首页 > 解决方案 > Maatwebsite/Laravel-Excel Import 将特殊字符转换为数字 0

问题描述

我有一个 CSV 文件,其中一些行的文本/单词包含特殊字符,例如ñ,

发生的情况是,当我尝试导入 CSV 文件时,带有上述字符或类似字符的单词将被转换为0。

我正在使用ToModel

use Maatwebsite\Excel\Concerns\ToModel;

要重现这一点,只需尝试在 CSV 文件的一个单元格中放置一个特殊字符,然后像这样导入它:

Excel::import(new CsvImport, request()->file('file'));

输出:结果插入的具有特殊字符的数据将存储为 0

注意:直接从Form添加数据不会将特殊字符转换为0,仅在通过导入上传CSV时

标签: laravelmaatwebsite-excel

解决方案


在您的配置中,将“use_bom”设置为“true”

    'csv'                    => [
        'delimiter'              => ',',
        'enclosure'              => '"',
        'line_ending'            => PHP_EOL,
        'use_bom'                => true,
        'include_separator_line' => false,
        'excel_compatibility'    => false,
    ],

推荐阅读