How can I output a UTF-8 CSV in PHP that Excel will read properly?

后端 未结 30 2799
半阙折子戏
半阙折子戏 2020-11-22 06:08

I\'ve got this very simple thing that just outputs some stuff in CSV format, but it\'s got to be UTF-8. I open this file in TextEdit or TextMate or Dreamweaver and it displa

30条回答
  •  时光取名叫无心
    2020-11-22 06:14

    You have to use the encoding "Windows-1252".

    header('Content-Encoding: Windows-1252');
    header('Content-type: text/csv; charset=Windows-1252');
    header("Content-Disposition: attachment; filename={$filename}");
    

    Maybe you have to convert your strings:

    private function convertToWindowsCharset($string) {
      $encoding = mb_detect_encoding($string);
    
      return iconv($encoding, "Windows-1252", $string);
    }
    

提交回复
热议问题