我正在編寫一個(gè) PHP 腳本,該腳本根據(jù)一些數(shù)據(jù)創(chuàng)建 .csv 文件。不幸的是,在 Excel 中變音符號(hào)無(wú)法正確顯示:L?l變成L√?l(這只是在 Excel 中,在 Apple 的 Numbers、Atom 和 Textedit 中一切看起來(lái)都很好)。我已經(jīng)嘗試了數(shù)百個(gè)函數(shù)來(lái)嘗試獲得正確的編碼(請(qǐng)參閱下面的注釋函數(shù))。有人可以告訴我我做錯(cuò)了什么嗎?$rows = json_decode('[["L?l"]]');foreach($rows as $key_row => $row) { foreach($row as $key_cell => $cell) { // $rows[$key_row][$key_cell] = utf8_decode($cell); // $rows[$key_row][$key_cell] = iconv('UTF-8', 'Windows-1252', $cell); // $rows[$key_row][$key_cell] = mb_convert_encoding($cell, 'UTF-16LE', 'UTF-8'); // iconv('UTF-8', 'Windows-1252', $rows[$key_row][$key_cell]); // mb_convert_encoding($rows[$key_row][$key_cell], 'UTF-16LE', 'UTF-8'); }}$temp = fopen('php://memory', 'w');foreach($rows as $row) { fputcsv($temp, $row, ';'); }fseek($temp, 0);header('Content-Type: application/csv');header('Content-Disposition: attachment; filename="test.csv";');fpassthru($temp);
1 回答

婷婷同學(xué)_
TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
以下轉(zhuǎn)換UTF-8 BOM有效:
foreach($rows as $key_row => $row) {
foreach($row as $key_cell => $cell) {
$rows[$key_row][$key_cell] = chr(239) . chr(187) . chr(191) . $cell;
}
}
感謝所有參與的人:)
- 1 回答
- 0 關(guān)注
- 118 瀏覽
添加回答
舉報(bào)
0/150
提交
取消