Php 当CSV文件为UTF格式时,无法在CSV文件中检测分隔符

Php 当CSV文件为UTF格式时,无法在CSV文件中检测分隔符,php,php-7.3,Php,Php 7.3,我有一个CSV文件,如下所示 マテル・インターナショナル株式会社,dog 株式会社タカラトミーアーツ,apple 大網株式会社,banana 我曾经得到过CSV $file = new SplFileObject(my_path); $file->setFlags(SplFileObject::READ_CSV | SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY); foreach ($file as $key =>

我有一个CSV文件,如下所示

マテル・インターナショナル株式会社,dog
株式会社タカラトミーアーツ,apple
大網株式会社,banana
我曾经得到过CSV

$file = new SplFileObject(my_path);
$file->setFlags(SplFileObject::READ_CSV  | SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY);

foreach ($file as $key => $row) {
    print_r($row);
}
我在控制台中得到了以下输出,我的脚本将在shell中运行,而不是在浏览器中运行

Array
(
    [0] => マテル・インターナショナル株式会社
    [1] => dog
)

Array
(
    [0] => 株式会社タカラトミーアーツ,apple
)

Array
(
    [0] => 大網株式会社
    [1] => banana
)
我正在控制台而不是浏览器中尝试

Array
(
    [0] => マテル・インターナショナル株式会社
    [1] => dog
)

Array
(
    [0] => 株式会社タカラトミーアーツ,apple
)

Array
(
    [0] => 大網株式会社
    [1] => banana
)

这里第一行数组可以,但第二行数据显示在数组中的单个元素。所有行都包含一个逗号。如何解决字符编码问题?

您确定要拆分的、与apple或上一个编码元素之间没有空格吗?是的,我确定,它们之间没有空格,只有逗号。您是否尝试过使用对列中的数据?例如,苹果,株式会社タカラトミーアーツ而不是
株式会社タカラトミーアーツ,苹果
我只是逐字复制了你的代码,并将你的示例文本保存在一个文件中。你的文件编码是什么?我在MacOS上的Bash shell中运行。您是否尝试过在其他环境中运行此功能?在Google上快速搜索“git bash UTF-8文件编码问题”会返回一些您可能应该查看的结果。这几乎肯定是一个文件编码问题,最有可能的罪魁祸首是您的怪异外壳。你的代码很好。