Glu*_*ear 5 php csv byte-order-mark utf-8 laravel
我正在使用League / CSV软件包在Laravel 5.7中导出模型:
public function export(Request $request)
{
$people = Person::all();
$location = 'export.csv';
$csv = Writer::createFromPath($location, 'w');
$csv->setOutputBOM(Writer::BOM_UTF8);
$csv->setDelimiter(';');
foreach ($people as $person) {
$csv->insertOne($this->serializePerson($person));
}
return response($location);
}
protected function serializePerson($person)
{
return [
$person->name,
$person->age,
];
}
Run Code Online (Sandbox Code Playgroud)
这样就export.csv
可以确定文件了,但是所有变音符的显示方式都不正确(例如??
)。我本以为设置BOM可以解决此问题。有没有人有办法解决吗?
编辑:问题不是出口,是Mac Excel错误地显示了变音符号。请参阅下面的答案。
我的问题表述得很糟糕,但我会将答案留在这里,以防其他人遇到同样的问题。该文件实际上已正确导出:如果我在文本编辑器中打开它,则变音符号的格式正确。
为了让它在 Excel(在 Mac 上)中正常工作,我必须:
归档时间: |
|
查看次数: |
223 次 |
最近记录: |