แก้ปัญหา charset ของ mysql กับปัญหาภาษาไทยอ่านไม่ออก?

เอาแบบง่ายเลยก็ใช้ phpmyadmin เวอร์ชั่นเก่าๆหน่อย อย่าง 2.5.4 ก็ได้ export ออกมาด้วย phpmyadmin v2.5.4 ถ้าไม่มีปัญหาอะไร จะเปิดอ่านภาษาไทยในไฟล์ sql ได้ปกติ หลังจากนั้นก็ใช้ text editor เปิดไฟล์ sql ดังกล่าว แล้วแทนที่ DEFAULT CHARSET=latin1 ด้วย DEFAULT CHARSET=tis620 ทั้งหมดในไฟล์ แล้วนำไฟล์ sql ที่แก้ไขแล้ว import ไปในโฮสใหม่

[quote author=jirawat link=topic=6764.msg133253#msg133253 date=1221909260]
1.แล้วในกรณีนี้ Host ของผมเป็น latin1 ผมควรแก้ไขอย่างไรครับ

ขอขอบคุณทั้งพี่ jirawat และพี่ kke เลยนะครับ ที่มาช่วยแนะนำผม

ตอนนี้ผมเริ่มเข้าใจหลักการทุกอย่างบ้างแล้วล่ะครับ (ก่อนหน้านี้ ลบฐานข้อมูลแล้ว ทำใหม่ไปหลายรอบ เพราะความรู้เท่าไม่ถึงการณ์)

ผมได้ไป cap หน้าจอของ phpmyadmin มาแล้วนะครับ ยังไงรบกวนช่วยดูให้ผมอีกครั้ง (จริงๆแล้ว ผมได้อ่านบทความของพี่ kke ไปหมดแล้วล่ะครับ แต่ยอมรับว่าตัวเองยังโง่อยู่ ด้วยเพราะเพิ่งจะมาเริ่มศึกษา้เรื่องนี้อย่างจริงจัง)

จากการที่ผมค้นหา รวมทั้งได้รับคำตอบดีๆของพี่ทั้ง 2 คนได้ความว่า ถ้าเป็นแบบนี้ ผมควร backup ข้อมูลด้วย phpmyadmin 2.5.4 ใช่มั้ยครับ เพราะมันจะอ่านค่าเป็นภาษาไทย ได้อย่างถูกต้อง แล้วนำมาทำการแก้ไข sql ที่ backup มาให้เป็น tis620 แทน latin1

ด้วยความที่ไม่รู้อีกล่ะครับ host ผมที่เช่าไว้เป็น phpMyAdmin - 2.11.4 ผมจะ backup โดย phpmyadmin 2.5.4 ได้อย่างไรหรอครับ

ในเมื่อก็ุถามมาถึงขั้นนี้แล้วล่ะครับ ผมขอถามต่อเลยดีกว่านะครับ เพราะมันยังคงไม่พ้นไปจากเรื่องเดิมมากนัก อย่างน้อยคนที่ได้มาอ่านกระทู้นี้ แต่ยังไม่เข้าใจตั้งแต่ต้นอย่างผม

ทำไมภาพมันออกมาเล็กจังครับ

งง ???

จากภาพเป็นการเก็บข้อมูลเป็น ascii ในตาราง latin1 ครับ จึงไม่ต้องกังวลกับการแสดงผลบน phpmyadmin 2.11 ครับ
โหลด phpmyadmin 2.5.4 มาลงบนโฮสแล้วก็ export ได้เลยครับ
http 61.19.246.211 support phpMyAdmin-2.5.4.tgz

ขอขอบคุณ พี่ kke อีกครั้งครับ

ตอนนี้ข้อสงสัยต่างๆของผมหายเป็นปลิดทิ้งไปเรียบร้อยแล้วครับ

ทำทุกอย่างผ่านทาง phpMyAdmin-2.5.4

ทั้ง import จาก localhost และ dump ลง host จริง

เท่านี้ก็หมดปัญหาเรื่อง อักษรทุกอย่างแล้ว เยี่ยมจริงๆครับ

ทีนี้ผมก็หมดปัญหาการแสดงผลใน localhost กับ host จริงไม่เหมือนกันได้แล้ว

ขอบคุณมากครับ

ยินดีด้วยครับ

รบกวนสอบถามครับ

ตอนนี้เจอปัญหาเดียวกับคุณ nutrjay เลยครับ

ได้ลองโหลด phpmyadmin 2.5.4 มาลงแล้ว (ตอนนี้เว็บอยู่ 000webhost)

อยากทราบว่าต้อง config ค่าอะไรบ้างใน phpmyadmin 2.5.4 ครับ

ได้ลอง config ไฟล์ config.inc.php
$cfg[‘Servers’][$i][‘host’] = ‘mysql3.000webhost.com’;

ก็ขึ้น error ตามภาพเลยครับ ทำให้ไม่สามารถใช้ตัว phpmyadmin 2.5.4 ในการ export ได้ครับ
ต้องแก้ไขอย่างไรดีครับ

โทษทีครับ ที่ผมกลับมาตอบช้า ผมก็ไม่รู้ว่าคุณ ohooho
แก้ไขปัญหาไปได้เรียบร้อยแล้วหรือยังนะครับ ณ ตอนนี้

คือผมต้องลง phpmyadmin 2.5.4 ทั้ง Host เก่าที่จะ backup ข้อมูลมา
และ Host ใหม่ ที่จะ Dump ข้อมูลลงไปด้วยครับ

หลังจาก back up ข้อมูลมาแล้ว ให้ใช้ Note pad แก้ latin1 เป็น tis620 ครับ

จากนั้น Dump ข้อมูลลง Host ใหม่ ผ่านทาง phpmyadmin 2.5.4 ได้เลยครับ

เท่านั้นเองครับผม

ขอบคุณ คุณ nutrjay ที่ตอบครับ

แต่เรื่องของเรื่องคือ ผมโหลดตัว phpmyadmin 2.5.4 ไปลงในโฮส แล้วเกิด Error ตามภาพด้านบนน่ะครับ
ก็เลยไม่สามารถ backup ข้อมูลออกมาได้

เลยอยากรู้ว่าตอนเอาตัว phpmyadmin 2.5.4 ไปลงในโฮส เราต้องเซตค่าอะไรไหมครับ

โฮสต์เขาปิดฟังก์ชั่น mysql_list_dbs() ไว้ครับ ไม่ทราบว่าใช้ control panel อะไรครับ
ถ้าใช้ control panel export ฐานข้อมูลออกมาได้ ลอง export ออกมาก่อน หรือใช้ phpmyadmin ที่มีอยู่แล้วบนโฮส export ออกมา ถ้า export ออกมาแล้วภาษาไทยไม่เป็น ?? ทั้งหมด สามารถเอาไฟล์ที่ export ออกมา import เข้าไปที่โฮสใหม่ หลังจากนั้นค่อยใช้ phpmyadmin v2.5.4 export ออกมาใหม่ แล้วแก้ default charset ใหม่ด้วย text editor แล้วค่อย import ไฟล์ที่แก้แล้วกลับเข้าไปใหม่

แต่ถ้า export ออกมาจากโฮสเก่าแล้วภาษาไทยเป็นเครื่องหมาย ?? หมด คงต้องหาวิธีใหม่ครับ

=============================
ต้นทาง
localhost
รุ่นของเซิร์ฟเวอร์: 5.0.45
Protocol version: 10
เซิร์ฟเวอร์: Localhost via UNIX socket
ผู้ใช้: cabal@localhost
ชุดตัวอักษร (charset) ของ MySQL: UTF-8 Unicode (utf8)
MySQL connection collation:
utf8_general_ci

phpMyAdmin - 2.11.7
MySQL client version: 5.0.45
Used PHP extensions: mysql
Charset ของ DB และ Table ต้นทาง
tis620_thai_ci
ปลายทาง

localhost
รุ่นของเซิร์ฟเวอร์: 5.0.45-community-nt-log
Protocol version: 10
เซิร์ฟเวอร์: localhost via TCP/IP
ผู้ใช้: root@localhost
ชุดตัวอักษร (charset) ของ MySQL: UTF-8 Unicode (utf8)
MySQL connection collation:
utf8_general_ci

phpMyAdmin - 2.10.2
MySQL client version: 3.23.49
Used PHP extensions: mysql
Charset ของ DB ปลายทาง ทีเ่กิดจากการสร้าง db เปล่าๆขึ้นมาผ่าน cp
utf8_general_ci

ปกติผมdumpไฟล์จากต้นทางมา ด้วยคำสั่ง
mysqldump -uxxxx -pzzzz yyyyyy > cabal-2808.sql
ซึ่งทำจากโปรแกรมputty โดยเซิฟเวอร์เป็นการshare-port
และ
พอไป import ไฟล์ ลงwindows server2003
ภาษาไทยและอักขระ พิเศษ ในเกมส์ นะกลายเปน???และไม่สามารถสร้างตัวละครภาษาไทยได้คับ
แก้อย่างไรได้บ้าง ขอบคุณครับ

ข้อมูลละเอียดดีครับ

อ่า รบกวนมากนิดนึงนะครับ คือว่า tis620 นั้น เราเซตในค่าdbที่เราจะdumpเข้าไป หรือว่า ตอนลงappserv เลยครับ
เพราะว่า มันหลายส่วนมากๆ ส่วนไฟล์ที่dump มา จะเป็น tis620 ทุกค่าครับ

ตัวเก่า

  1. Version ของ mysql

[quote author=gmove link=topic=6764.msg195042#msg195042 date=1245923371]
ตัวเก่า

  1. Version ของ mysql 5.0.58
  2. Version ของ phpmyadmin 2.8.2.4
  3. Charset ของ DB และ Table utf8_general_ci

ตัวใหม่

  1. Version ของ mysql

พอดีทำเวบบิทคับ
แล้วย้ายเซิฟใหม่ เข้าไป php myadmin อ่านข้อมูลในนั้นเป็นภาษาไทยได้

แต่พอมาเปิดดูที่หน้าเวบ มันเป็น เครื่องหมาย ?? แบบนี้หมดเลยคับ ในส่วนที่เรียกจากดาต้าเบสมาแสดง

และอีกคำถาม เซิฟเวอร์เก่า ใช้ plesk ส่วนเครื่องใหม่ที่จะย้ายมาใช้เป็น DA
มันเกี่ยวกันด้วยหรือเปล่าคับ

ไม่เกี่ยว แก้ connection นิดหน่อยก็ได้แล้วนะ

แก้ connection