View Full Version : sql เปิดจาก Editplus แล้วอ่านไทยได้ แต่ import เข้า mysql แล้วอ่านไม่รู้เรื่อง
asylu3
03-11-2008, 08:18 PM
หากคุณเจออาการแบบนี้ก็แสดงว่าคุณโดน Editplus หลอกแล้วโปรแกรมนี้ ปกติแล้วจะแสดงผลภาษาไทยไม่ได้
จนกว่าจะไปปรับแต่งค่าให้แสดงผลไทย และหาเปิดไฟล์มาแล้วอ่านไทยได้เลย แสดงว่า Encode ของไฟล์นั้นต้องไม่ใช้ utf8 แน่นอน
ต้องเป็น utf8 ดังนั้นพอคุณเอามา import เข้า mysql ด้วย syntax
mysql -h localhost -u username -p mytable < data_file.sql
มันจะได้ค่าที่อ่านไม่เป็นภาษาไทยเข้าไป
ซึ่งหากต้องการให้เป็นภาษาไทยต้องทำแบบนี้[hide=1]
[code]mysql -h localhost -u username -p mytable < data_file.sql
casnovo
25-12-2008, 10:55 PM
ผมเคยเจอปัญหานี้นี้เหมือนกันครับ ตอนหัดเล่น PHP กับ MYSQL ใหม่ ยังไม่เข้าใจกับระบบ utf8 กับ tis 620 แต่ หลังจากถาม อ.กูเกิ้ล สัพักก็เข้าใจ วันหลังจะสั่งสมประสพการณ์ และ นำมาเขียนเป็นบทความไว้นะครับ
Cuagain
11-02-2009, 11:34 AM
ขอบคุณคับ
tkcomsci
23-05-2009, 11:22 PM
รู้สึก ที่ เคย ทำ มา และ อย่าง ที่ ผม เข้า ใจ น่า จะ เป็น ที่ภาษา UTF-8 นะครับ
soisiam
23-10-2009, 02:29 PM
แต่ถ้ามันมีปัญหาตัว character เพราะว่าไม่ยอมอิมพอร์ตให้เลยผมลองทั้ง UTF-8 และ TIS-620 และก็ยังเป็นภาษาต่างดาวบีบทั้ง gzip ไฟล์ก็ยังไม่ได้จะแก้ยังไงครับผมปวดหัวไปหมดแล้วอ่ะหรือว่าเป็นที่เวอร์ชั่นของ PHPmyadmin
asylu3
23-10-2009, 02:42 PM
แต่ ถ้ามันมีปัญหาตัว character เพราะว่าไม่ยอมอิมพอร์ตให้เลยผมลองทั้ง UTF-8 และ TIS-620 และก็ยังเป็นภาษาต่างดาวบีบทั้ง gzip ไฟล์ก็ยังไม่ได้จะแก้ยังไงครับผมปวดหัวไปหมดแล้วอ่ะหรือว่าเป็นที่เวอร์ชั่น ของ PHPmyadmin[/b]
ขอ error หน่อยคับว่ามัน error ว่าอะไร จาก sql syntax อะไร
แล้วก็ขอ screenshot ของค่าอักษรที่แสดงใน phpmyadmin แล้วก็หน้าเว็บด้วยครับ
สุดท้ายก็ขอให้แน่ใจด้วยว่า charset ถูดต้อง
soisiam
23-10-2009, 03:07 PM
แต่ถ้ามันมีปัญหาตัว character เพราะว่าไม่ยอมอิมพอร์ตให้เลยผมลองทั้ง UTF-8 และ TIS-620 และก็ยังเป็นภาษาต่างดาวบีบทั้ง gzip ไฟล์ก็ยังไม่ได้จะแก้ยังไงครับผมปวดหัวไปหมดแล้วอ่ะหรือว่าเป็นที่เวอร์ชั่นของ PHPmyadmin
[/b]
ขอ error หน่อยคับว่ามัน error ว่าอะไร จาก sql syntax อะไร
แล้วก็ขอ screenshot ของค่าอักษรที่แสดงใน phpmyadmin แล้วก็หน้าเว็บด้วยครับ
สุดท้ายก็ขอให้แน่ใจด้วยว่า charset ถูดต้อง
[/b]
ตอนแรกยังไม่ได้เซ็ต charset เป็นแบบนี้
http://www.soisiam.com/images/d1ugo0pwr30mb9ers.png (http://www.soisiam.com/)
สุดท้าย import ได้แต่แสดงผลภาษาไทยไม่รู้เรื่อง
http://www.soisiam.com/images/5tq4yro83ienqhofq3mg.png (http://www.soisiam.com/)
tepprawo
31-10-2009, 10:53 PM
เคยเป็นแบบนี้เหมือนกันครับ แต่ไม่ได้ export ด้วย PHPMySQL ครับ ใช้ command line
mysqldump -u ... -p... --database=... แต่ไม่ได้ระบุ charset ตอน export ก็เลยออกมาเป็น default ตอน start mysql แต่พอลองเพิ่ม option --default-charset= ก็ใช้ได้ครับ
mysqldump -u ... -p... --database=... --default-charset=utf8 > output_file.sql
แล้วลองเอาไป import ดูครับ
หรือถ้าเป็น linux ลองใช้คำสั่ง iconv convert character set ดูครับ
iconv --list ...ดูก่อนว่ามี uft-8 กับ tis-620 หรือเปล่า
iconv -f UTF-8 -t TIS620 fileที่exportจากmysql.sql >output_utf8.sql
น่าจะช่วยได้ครับ
zone99
25-01-2010, 04:59 PM
น่าจะเกี่ยวกับพวก encode นะครับ
saknarak
27-01-2010, 10:27 PM
ขอเสริมเพิ่มเติมนะครับ
1. Editplus อ่านไทยได้แน่นอน แม้ว่า encoding ของไฟล์จะเป็น ascii ก็ตาม ถ้า Windows มี Regional เป็นไทย
2. mysql ไม่รู้ encoding ของไฟล์ จึงต้องมีการบอก mysql encoding ของต้นทางเป็นอะไร
3. ถ้าบอก econding ของต้นทางได้ถูกต้อง จะสามารถนำข้อมูลเข้าตารางได้ค่อนข้างแน่นอน โดยไม่สนว่า charset ของ column ที่จะนำเข้าเป็นอะไรก็ตาม
ตัวอย่างนะครับ
ไฟล์ ascii => บอก mysql ว่าเป็น utf8 => นำเข้าตารางที่เป็น utf8 ** OK **
ไฟล์ utf-8 => บอก mysql ว่าเป็น utf8 => นำเข้าตารางที่เป็น utf8 ** OK **
ไฟล์ ascii => บอก mysql ว่าเป็น utf8 => นำเข้าตารางที่เป็น utf8 ** OK **
ไฟล์ utf-8 => บอก mysql ว่าเป็น utf8 => นำเข้าตารางที่เป็น utf8 ** OK แต่อาจไม่ 100% เนื่องจากไฟล์ utf-8 อาจมีอักขระที่ไม่ใช่ไทยหรืออังกฤษได้ **
แต่ถ้าเป็นแบบนี้
ไฟล์ ascii => บอก mysql ว่าเป็น utf8 => นำเข้าตารางที่เป็น อะไรก็ได้ ** NOT OK **
ไฟล์ utf-8 => บอก mysql ว่าเป็น utf8 => นำเข้าตารางที่เป็น อะไรก็ได้ ** NOT OK **
สรุปก็คือ การบอก mysql ว่าข้อมูลของเรามี encoding แบบใดนั้น สำคัญมาก
แม้จะไม่ตรงกับ charset ของ column ก็ตาม mysql สามารถ mapping ระหว่าง charset ได้โดยอัตโนมัติ
ดังนั้นการโหลดไฟล์ sql เข้า mysql ที่ถูกต้อง ให้ตรวจสอบดังนี้
**Hidden Content: Check the thread to see hidden data.**
ยาวหน่อย แต่เพื่อความเข้าใจที่ถูกต้อง ใครเข้าใจแล้ว ต่อไปจะไม่มีปัญหาเรื่อง encoding กับ charset ของ mysql อีกต่อไป
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.