2017-12-30 59 views
2

このコードでUTF8文字コードを設定するにはどうすればよいですか?PHPでxlsファイルを生成する際に文字コードを設定する

私の問題は、Excelでエクスポートしたファイルを開くときに、手動でエンコーディングを設定する必要があることです。

あなたのヘッダを送信した後に、データの前にUTF8 BOM(バイトオーダーマーク)を送信する必要があり
$filename = "termekek.xls"; 

     header("Content-Disposition: attachment; filename=\"$filename\""); 
     header("Content-Type: application/vnd.ms-excel"); 

     $flag = false; 
     $result = mysqli_query($kapcs, $sql) or die('SQL error - '.mysqli_error($kapcs)); 
     while($row = mysqli_fetch_assoc($result)) 
     { 
      if(!$flag) 
      { 
       echo implode("\t", array_keys($row)) . "\r\n"; 
       $flag = true; 
      } 
      array_walk($row, __NAMESPACE__ . '\cleanData'); 
      echo implode("\t", array_values($row)) . "\r\n"; 
     } 
     exit; 

答えて

0

$filename = "termekek.xls"; 

header("Content-Disposition: attachment; filename=\"$filename\""); 
header("Content-Type: application/vnd.ms-excel"); 
echo "\xEF\xBB\xBF"; // UTF8 BOM 

$flag = false; 
$result = mysqli_query($kapcs, $sql) or die('SQL error - '.mysqli_error($kapcs)); 

while ($row = mysqli_fetch_assoc($result)) { 
    if (!$flag) { 
     echo implode("\t", array_keys($row)) . "\r\n"; 
     $flag = true; 
    } 
    array_walk($row, __NAMESPACE__ . '\cleanData'); 
    echo implode("\t", array_values($row)) . "\r\n"; 
} 

exit(); 
関連する問題