Mysql อ่านไม่ออก

ที่ Host เดิมก็เป็นอย่างนี้ แต่ php default เป็น tis-620 วันเลยอ่านได้
พอย้าย host มา php default เป็น utf-8 ทีนี่อ่านไม่ออกเลยครับ
พยายามลองหลายวิธีแล้วครับ ไม่ได้ผล

ใครเคยแก้ไขได้สำเร็จแล้วบ้างครับ :baa60776:


phpMyAdmin

  • Version information: 3.4.11.1, latest stable version: 3.5.4

MySQL

  • Server: Localhost via UNIX socket
  • Server version: 5.1.65-cll
  • MySQL charset: UTF-8 Unicode (utf8)

PHP version 5.3.18

ปรับค่า Server connection collation เป็น tis620_thai_ci แล้วก็ปรับ encoding หน้าเว็บเป็น tis-620 หรือ windows-874

ลองแล้วครับ ยังไม่หาย


สร้าง db ใหม่กำหนดให้ [COLOR=#333333]collation เป็น tis620_thai_ci แล้วค่อย import db ครับ[/COLOR]

Ok เดี๋ยวลองเดี๋ยวนี้เลยครับ

ตอน import DB แล้วปรับ Character set of the file: tis-620 จได้มี error ครับ แต่ถ้าเอาเข้าเป็น utf-8 ไม่ error นำเข้าได้ปกติ

[h=1]Error[/h] SQL query:
INSERT INTO news_article
VALUES ( 6716, 5, 0, ‘baanampha380.jpg’, ‘small_baanampha380.jpg’, ‘icon_baanampha380.jpg’, 'ยบรฉร </span>ร(324,1649,'VTUswVsjUpKT ','pAdPjT & lt;

  [B]MySQL said: [/B][[IMG]http://muangthai.com:2082/cpsess2881639331/3rdparty/phpMyAdmin/themes/pmahomme/img/b_help.png[/IMG]](http://muangthai.com:2082/cpsess2881639331/3rdparty/phpMyAdmin/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.1%2Fen%2Ferror-messages-server.html&token=038d435a7c4b1e3c076ab1226072e76e) 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘VTUswVsjUpKT’,‘pAdPjT &lt’ at line 1

ลอง dump DB เดียวกัน

ต้นฉบับเป็น MyISAM latin1_swedish_ci มีภาษาไทย ºéÒ¹ÍÑÁ¾ÇÒ ÃÕÊÍÃì· á͹´ì Ê»Ò ¨.ÊÁØ·Ãʧ¤ÃÒÁ แต่จะแสดงผลได้เมื่อ php มี default เป็น tis-620 แต่เครื่องใหม่บังคับให้เป้น utf-8

mysqldump -u root -p --default-character-set=utf8 mydatabse > mybackup-utf8.sql
พอ restore ได้ภาษาไทยแบบนี้ ºéÒ¹ÍÑÁ¾ÇÒ ÃÕÊÍÃì· á͹´ì Ê»Ò ¨.ÊÁØ·Ãʧ¤ÃÒÁ

mysqldump -u muangthai -p --default-character-set=tis620 mtravel > tmtravel-tis620.sql
พอ restore ได้ภาษาไทย เป็น ???

แนะนำด้งยนะครับ

ใช้ bigdump ดูครับ

ตอนนี้ DB ผม อ่านออกแล้วครับแต่หน้า เพจมันแสดงผลเป็น ??? ทั้งๆที่ลองเปลี่ยน encoding เป็น tis-620 หรือ utf-8 แล้วก็ตาม

ผมใช้ command นี้ใน Shell

เครื่องเก่า
mysqldump -u root -p --default-character-set=latin1 --skip-set-charset mydb_name | sed “s/DEFAULT CHARSET=latin1//” > mydb-without-latin1.sql

เครื่องใหม่
สร้าง DB ใหม่และปรับ character เป็น tis620
mysql -u root -p --default-character-set=tis620 mydb_name < mydb-without-latin1.sql

เกือบได้แล้วครับ

ถ้าใช้ smf ให้ convert to utf8 ก่อนย้ายครับ