ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingupload ไฟล์ csv แล้ว ภาษาไทยเพี้ยนหมดเลยค่ะ ช่วยดูให้หน่อยค่ะ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: upload ไฟล์ csv แล้ว ภาษาไทยเพี้ยนหมดเลยค่ะ ช่วยดูให้หน่อยค่ะ  (อ่าน 4179 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
test_one
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« เมื่อ: 07 ตุลาคม 2012, 02:11:24 »

upload ไฟล์ csv  แล้ว ภาษาไทยเพี้ยนหมดเลยค่ะ  ช่วยดูให้หน่อยค่ะ

โค๊ด:
<form action="frm_p_csv.php" method="post" enctype="multipart/form-data" name="form1" style="padding-top:50px;">
  <input name="file" type="file" id="file" value="">
  <input name="btnSubmit" type="submit" id="btnSubmit" value="Submit">
</form>

หน้า frm_p_csv.php
โค๊ด:
copy($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]); // Copy/Upload CSV

require("connect.php");

$file = $_FILES["file"]["name"];

$objCSV = fopen($file, "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO Staff ";
$strSQL .="(locationID ,staff_name, staff_position) ";
$strSQL .="VALUES "; // 19
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."') ";
$objQuery = mysql_query($strSQL);
echo $strSQL;
}
fclose($objCSV);

ขอคำแนะนำหน่อยค่ะ
บันทึกการเข้า
ossytong
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 138
ออฟไลน์ ออฟไลน์

กระทู้: 1,151



ดูรายละเอียด
« ตอบ #1 เมื่อ: 07 ตุลาคม 2012, 02:30:40 »

เรื่องนี้เป็นอีก 1 เรื่องที่่น่าปวดหัวมาก

คือ พื้นฐานของ ไฟล์ .csv ที่ถูกเปิด โดย office แล้วเซฟมาเนี้ย มันจะมีปัญหา ไม่แน่นอนในการ encode ภาษาที่ใช้ ของตัวไฟล์

บางทีก็เป็น utf-8 บางทีก็เป็น windows-874 เป็นต้น

ทำให้พอเรารับไฟล์ มาแล้วเนี้ย เราจะต้องเช็ึคก่อนว่าไฟล์ที่รับเข้ามา ถูก encode ด้วยภาษาอะไร

เช่น ปกติผมจะใช้ encode ภาษาเป็น utf-8
เมื่อไฟล์ถูก upload เข้ามา ผมก็จะเช็คก่อน ว่าเป็น utf-8 หรือไม่ ถ้าไม่เราก็เช็คว่า encode ด้วยอะไรมา แล้วก็จับแปลงเป็น utf-8 ก่อน
ถึงจะเอาไปใช้งานต่อไป

ผมก็ไม่รู้ว่ามีวิธีที่ดีกว่านี้หรือไม่ แต่ที่ผ่านๆมา ผมจะใช้วิธีข้างต้นเอา
« แก้ไขครั้งสุดท้าย: 07 ตุลาคม 2012, 02:31:48 โดย ossytong » บันทึกการเข้า
cnnon
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 261



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 07 ตุลาคม 2012, 21:16:50 »

ต้องมี  conv ครับ ลองหาดู มันจะช่วยได้
บันทึกการเข้า

ความรู้คือประทีปส่องสว่าง
การให้แสงสว่างแก่ผู้อื่น ไม่มีวันทำให้แสงสว่างของตัวเองอับเฉาได้ มีแต่จักช่วยกันทำให้โลกนี้สว่างไสวมากขึ้น...เท่านั้น
. . . .
imworker
ก๊วนเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 272



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 07 ตุลาคม 2012, 22:30:21 »


อันนี้น่าสนใจแฮะ ต้องลองไปศึกษาดูหน่อย
บันทึกการเข้า

test_one
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« ตอบ #4 เมื่อ: 08 ตุลาคม 2012, 00:23:38 »

ได้แล้วค่ะ
1. เพิ่ม mysql_query("SET NAMES TIS620");
2. ในฐานข้อมูลให้เป็น  TIS620  ด้วย
3.ไฟล์ .csv  จาก office   ให้ encode ภาษาเป็น ไทย   
ขอบคุณ สำหรับ ทุกคำแนะนำค่ะ   
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์