Php Codeigniter数据到csv字符的阿拉伯文编码问题

Php Codeigniter数据到csv字符的阿拉伯文编码问题,php,excel,codeigniter,csv,character-encoding,Php,Excel,Codeigniter,Csv,Character Encoding,我使用codeigniter作为连接字符集的框架 $config['charset'] = 'UTF-8'; 阿拉伯语正确显示在网站和数据库中。问题在于将数据导出到csv文件。使用cPanel上的代码编辑器可以正确显示该文件,但是当我下载该文件并使用excel打开它时,我得到了以下信息 当我用记事本打开它时,阿拉伯语显示正确,但当我将文件上传到facebook产品目录时,阿拉伯语显示也不正确。这是密码 $handler = fopen('./directory/'.$fileName,'a+

我使用codeigniter作为连接字符集的框架

$config['charset'] = 'UTF-8';
阿拉伯语正确显示在网站和数据库中。问题在于将数据导出到csv文件。使用cPanel上的代码编辑器可以正确显示该文件,但是当我下载该文件并使用excel打开它时,我得到了以下信息

当我用记事本打开它时,阿拉伯语显示正确,但当我将文件上传到facebook产品目录时,阿拉伯语显示也不正确。这是密码

$handler = fopen('./directory/'.$fileName,'a+');

$exporteddata = 'availability,condition,description'.PHP_EOL;
 for ($x=0; $x<count($cat_products); $x++) {
      if(strlen(trim($cat_products[$x]->description)) == '0'){
         $description = ' ';
      }
      else{
         $description = $cat_products[$x]->description;
      }
      $exporteddata .= 'in stock,new,'.$description.PHP_EOL;
 }
fwrite($handler,$exporteddata);
fclose($handler);
如果我们忽略下载功能,只关注从cPanel的文件管理器下载的数据本身,我仍然有这个问题,所以它不仅与下载功能有关,还与写入功能有关

因此,如何解决编码问题,以便在使用excel打开时,在csv中正确显示阿拉伯语,以便使用facebook正确导入

[更新]
当我在记事本中打开文件并用ANSI编码保存时,用excel阿拉伯语数据打开的新文件显示正确。我可以使用php将书写编码更改为ANSI吗?

这解决了问题,但facebook仍然存在编码错误的问题,我会联系facebook。首先

mb_convert_encoding($exporteddata, "Windows-1252", "UTF-8");
fwrite($handler,$exporteddata);
fclose($handler);
第二

public function get_file($file){
    $file = 'directory/'.$file;
    if (!is_file($file)) {
        header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
        echo 'File not found '.$file;
    } elseif (!is_readable($file)) {
        header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden');
        echo 'File not readable';
    } else {
        header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');
        header('Content-Encoding: UTF-8');
        header('Content-type: text/csv; charset=UTF-8');
        header("Content-Type: application/csv");
        header('Pragma: no-cache');
        echo "\xEF\xBB\xBF";
        header("Content-Disposition: attachment; filename=\"" . basename($file) . "\"");
        readfile($file);
    }
}
添加echo“\xEF\xBB\xBF”;下载功能和mb_convert_编码到已解决的保存功能,问题和阿拉伯文数据将在excel和记事本中正确显示。

。这是一个老问题,但对于最新版本的Excel,有一些答案。
public function get_file($file){
    $file = 'directory/'.$file;
    if (!is_file($file)) {
        header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
        echo 'File not found '.$file;
    } elseif (!is_readable($file)) {
        header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden');
        echo 'File not readable';
    } else {
        header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');
        header('Content-Encoding: UTF-8');
        header('Content-type: text/csv; charset=UTF-8');
        header("Content-Type: application/csv");
        header('Pragma: no-cache');
        echo "\xEF\xBB\xBF";
        header("Content-Disposition: attachment; filename=\"" . basename($file) . "\"");
        readfile($file);
    }
}