2017-12-30 76 views
2

이 코드로 UTF8 문자 코딩을 설정하려면 어떻게해야합니까?PHP로 xls 파일을 생성 할 때 문자 코드 설정

내 문제는 Excel에서 내 보낸 파일을 열 때 인코딩을 수동으로 설정해야한다는 것입니다.

$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

당신은 당신의 헤더를 보낸 후 UTF8의 BOM (바이트 순서 표시)를 전송해야 할 데이터 이전 :

$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();