$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 關注
- 203 瀏覽
添加回答
舉報
0/150
提交
取消