PHP Export sql To Excel เป็นภาษาต่างดาวครับ

สวัสดีครับ พอดีผมกำลังหัดเขียน PHP อยู่ พอดีผมติดปัญหาตรงที่ว่า พอจะ Export ไฟล์ excel ที่ดึงข้อมูลมาจาก sql แล้วภาษาไทยกลายเป็นภาษาต่างดาวน่ะครับ ผมเซ็ต charset เป็น utf-8 แล้วก็ไม่ได้อยู่ดี แต่พอให้แสดงผล table ในหน้าเว็บก็ปกติดี ข้อมูลใน phpadmin ก็แสดงผลภาษาไทยปกติดี เซ็ท collation เป็น utf-8 เหมือนกันครับ
อันนี้ไฟล์ connect ครับ :
<?php
$con= mysqli_connect("localhost","root","1234","db_comment_system") or die("Error: " . mysqli_error($con));
mysqli_query($con, "SET NAMES 'utf8' "); 
?>
อันนี้ไฟล์ Export ครับ :
<?php 
// Load the database configuration file 
include_once './login/connect.php'; 
 
// Filter the excel data 
function filterData(&$str){ 
    $str = preg_replace("/\t/", "\\t", $str); 
    $str = preg_replace("/\r?\n/", "\\n", $str); 
    if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; 

 
// Excel file name for download 
$fileName = "members-data_" . date('Y-m-d') . ".xls"; 
 
// Column names 
$fields = array('id', 'เลขประจำตัว', 'ชื่อ', 'ชั้นปี', 'คำถาม', 'คำตอบ'); 
 
// Display column names as first row 
$excelData = implode("\t", array_values($fields)) . "\n"; 
 
// Fetch records from database 
$query = $con->query("SELECT * FROM tbl_comments ORDER BY id DESC"); 
if($query->num_rows > 0){ 
    // Output each row of the data 
    while($row = $query->fetch_assoc()){ 
        $lineData = array($row['id'], $row['serialno'], $row['name'], $row['comment'], $row['answer']); 
        array_walk($lineData, 'filterData'); 
        $excelData .= implode("\t", array_values($lineData)) . "\n"; 
    } 
}else{ 
    $excelData .= 'No records found...'. "\n"; 

 
// Headers for download 
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=\"$fileName\""); 
 
// Render excel data 
echo $excelData; 
 
exit;
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
Preview
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่