Numthang Community
 
  Numthang.Org
    อ่านว่า "นำทาง"
หน้าแรก » Blogger » Blog เลย » วิธีแปลงภาษาไทยใน MySQL จาก Latin1 เป็น TIS-620
สมัครรับข่าวสารจากทางเรา

ลงทะเบียน ยกเลิก
Main Menu
Main Category
User Menu
E-Mail

รหัสผ่าน

จดจำการล๊อคอิน
ลืมรหัสผ่าน
สมัครสมาชิก
   
ผู้สนับสนุน
ลิงค์
สิ่งแวดล้อม
» EREC
» IPCC
ที่อยู่อาศัย
อาหารและยา
เครือข่าย
อื่นๆ
รับบริจาค
$5 US
$10 US
$15 US
50 บาท
100 บาท
200 บาท


สนับสนุนเรา

สมุนไพร เครื่องสำอางค์ ของกิน ของใช้ ปลอดภัย ราคาถูก

Technorati Profile

free counter with statistics

วิธีแปลงภาษาไทยใน MySQL จาก Latin1 เป็น TIS-620

เขียนโดย tee
Tuesday, 28 December 2010


เนื่องจากได้รับมอบหมายให้ย้าย hosting เว็บหนึ่ง แต่มีปัญหาเรื่องภาษาไทยของ MySQL ซึ่งเป็นปัญหาของเว็บรุ่นโบราณมากๆ ที่ยังคงใช้ Character set Latin1 และเก็บอักษรภาษาไทยที่เป็น TIS-620 ซึ่งเว็บในปัจจุบันนี้ได้เปลี่ยนแปลงไปเป็น UTF-8 กันไปเกินครึ่งค่อนโลกกันแล้ว เว็บส่วนตัวไม่มีปัญหาในการเปลี่ยนเป็น UTF-8 สักเท่าไรเพราะฐานข้อมูลไม่ใหญ่ และระบบก็เขียนเองทำให้แก้ไขอะไรได้ไม่ยาก แต่พอมาเป็น code ของคนอื่นเลยไม่อยากไปตามแก้ จึงต้องให้ใช้ TIS-620 กันต่อไป แต่ให้เข้ารหัสในฐานข้อมูลสมัยใหม่ให้เป็น TIS-620 อย่างถูกต้อง อันที่จริงจะใช้ Latin1 ต่อไปก็ได้ไม่มีปัญหา

จากตัวอย่างนี้ เว็บไซต์ใช้ MySQL โดยใช้ Character Set เป็น Latin1 และหน้าเว็บไซต์เป็น TIS-620 ปัญหาของการย้ายมันติดอยู่ตรงที่ phpMyAdmin สมัยใหม่ ไม่สามารถ export ข้อมูลออกมาเป็นภาษาไทยอย่างถูกต้องได้ จึงต้องใช้รุ่นเก่าๆ รุ่นที่แนะนำคือ 2.5.4 ซึ่งหาบนหน้า official ไม่ได้แล้ว โชคดีว่ามีเว็บที่เก็บ script เก่าเอาไว้อยู่
 
ขั้นตอนการแปลงมีดังนี้
 
1. ดาวน์โหลดและติดตั้ง phpMyAdmin 2.5.4จาก OldApps.com ชื่อตรงตัว
2. เลือก Language เป็น Thai (th-tis-620)
3. เลือกไปที่ "ส่งออก" หน้าแสดงตารางทั้งหมด
4. เปิดไฟล์ที่ได้ด้วยโปรแกรม Text Editor (ผมใช้ gEdit) แล้ว replace คำว่า latin1 ด้วย tis620
5. สร้างฐานข้อมูลใหม่ที่ต้องการจะนำเข้าแล้วเลือก collation เป็น tis620_thai_ci เสร็จแล้ว import ด้วย phpMyAdmin รุ่นปัจจุบัน (ผมใช้ 2.9.0.1 ซึ่งจริงๆ ก็เก่าแล้วเช่นกัน) เลือก Character set เป็น tis-620
6. ลองเปิดดูจะเห็นว่าอ่านภาษาไทยได้แล้ว ใช้กับหน้าเว็บไซต์ที่เขียนด้วย TIS-620 ได้ต่อไป (แต่ผมใช้คำสั่ง mysql เนื่องจากไม่สามารถ upload ไฟล์ขนาดใหญ่ใน phpMyAdmin ได้โดยใช้ mysql -u root -p [database] --default-character-set=tis620 < old-tis620.sql)
7. ใช้คำสั่ง query ใน script หน้าเว็บหลังจาก connect database ด้วย set names tis620 collate tis620_thai_ci;
 
ปล. เนื่องจากวันนี้งานสำเร็จด้วย phpMyAdmin อีกแล้ว หลังจากใช้งานกันมาเกือบ 10 ปี นึกครึ้มหา link donate เลยจัดไป $10 ทาง PayPal เรียบร้อย ขอบคุณ phpMyAdmin

ลิงค์ถาวร

 
 

ตอบกระทู้
ชื่อ *
E-Mail
หัวข้อ *
บอร์ดโค้ด
สี ขนาด Close all tags
เนื้อหา
แสดงอารมณ์
B) ;) :) :P
:laugh: :ohmy: :sick: :angry:
:blink: :( :unsure: :kiss:
:woohoo: :lol: :silly: :pinch:
:side: :whistle: :evil: :S
:blush: :cheer: :huh: :dry:
Extreme
*
รูปภาพ
สามารถอัพโหลดรูปภาพได้ทันทีโดยที่ไม่ต้องย่อก่อน ระบบจะย่อรูปให้โดยอัตโนมัติ
 
*
กรุณาพิมพ์ตามตัวอักษรเหล่านี้, ถ้าหากคุณอ่านไม่ออกให้กดส่งข้อความอีกครั้งเพื่อสร้างตัวอักษรใหม่
หน้าแรก :: กระดานสนทนา :: เกี่ยวกับเรา :: ติดต่อเรา
© 2007 Numthang.org อ่านว่า 'นำทาง' โดย Free Developer Foundation.
No Rights Reserved. This site is licensed under a Creative Commons Public Domain License. RSS Generator by FeedCreator

Thank to Inspros.net