$data = file_get_contents($path);$data = mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data, 'UTF-8, ISO-8859-1', true));$csv = Reader::createFromString($data);$csv->setDelimiter(';');$csv->setHeaderOffset(0);$test = $csv->getContent();return (new Statement)->process($csv); 当我调试并查看 $test 时,所有字符都正确显示(没有 l×nn 等)。当我遍历从此行返回的 TabularDataReader 对象时:return (new Statement)->process($csv); 标题显示不正确,例如“Bil lønn”(应为“Bil lønn”)。我是否也必须在 Statement 对象上设置编码?我查看了类,但找不到任何与编码相关的函数
1 回答
富国沪深
TA贡献1790条经验 获得超9个赞
我在 league/csv 和 ISO-8859-1 编码方面遇到了同样的问题。试试这个解决方法:
$data = file_get_contents($path);
if (!mb_check_encoding($data, 'UTF-8')) {
$data = mb_convert_encoding($data, 'UTF-8');
}
$csv = Reader::createFromString($data);
$csv->setDelimiter(';');
$csv->setHeaderOffset(0);
$test = $csv->getContent();
return (new Statement)->process($csv);
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消