แก้ปัญหาภาษาไทยของ MySQL Version 4.x ขึ้นไป

อย่างแรกที่เจอปัญหาใน MySQL 5.0 คือถึงแม้จะกำหนด default-character-set เป็น utf8 แล้วก็ตามที แต่ก็ยังคงมีปัญหากับการจัดการข้อมูลภาษาไทยครับ

ซึ่งเราต้องปรับเปลี่ยนพฤติกรรมของตนเองใหม่เล็กน้อย 3 อย่างใหญ่ ๆ ครับ

  1. กำหนด collation_connection หรือ collation (ถ้าคุณใช้ PHPMyAdmin ที่เป็น interface ภาษาไทยก็จะเรียกว่า "การเรียงลำดับ" ครับ) ของ Database และ Table ที่เราใช้ต้องเป็น utf8_thai_ci เพื่อบอกว่าเราต้องการใช้ภาษาไทยกับ Database และ Table นี้ครับ
  2. กำหนด DEFAULT CHARSET ของ Database และ Table ที่เราใช้ต้องเป็น utf8 เพื่อบอกว่าเราต้องการใช้ภาษาไทยกับ Database และ Table นี้ครับ
  3. กำหนด Storage Engine ให้กับ Table ด้วย เพื่อจะได้ใช้งานได้ดี และเหมาะสมกับการเข้าถึงข้อมูลครับ เช่นต้องการควบคุม Transaction ของข้อมูลก็ใช้ BDB หรือ InnoDB เป็นต้นครับ

ตัวอย่างเช่น

CREATE DATABASE TESTDB
    DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE TEST (
  name VARCHAR(150) NOT NULL,
  PRIMARY KEY(name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

โดยที่ ENGINE=InnoDB เป็น Storage Engine หนึ่งของ MySQL ส่วนใหญ่จะใช้ MySIAM กันจะเป็น ENGINE=MySIAM แทนครับ

ส่วน DEFAULT CHARSET=utf8 นี่ต้องตามนี้ครับ แต่ว่าเท่าที่เจอกันจะเป็น DEFAULT CHARSET=utf8 หรืออื่นๆ ซะมากกว่าครับ ลองดูนะครับ

หรือถ้า Database และ Table เก่าเรามีปัญหาไม่สามารถปรับเปลี่ยนได้ ก็ให้กำหนดตอนก่อนจะ Query ข้อมูลก็ทำได้ครับ โดยใช้คำสั่ง

SET CHARACTER SET utf8;

และตามด้วย

SET collation_connection = utf8_general_ci;

แล้วทำการ Query ข้อมูลครับ

การทำให้เมลจาก Gmail สามารถแสดงผลภาษาไทยได้ ทั้ง IE และ Mozilla Firefox

การทำให้เมลจาก Gmail สามารถแสดงผลภาษาไทยได้ ทั้ง IE และ Mozilla Firefox

ระบบที่ใช้้

  • Internet Explorer และ Mozille Firefox
  • โดยให้ Gmail ส่งเมลไปหา Hotmail

ปัญหาเกิดจากทางด้านเทคนิค !!!

ถ้าเราใช้โปรแกรมรับส่งเมลต่างๆ ไม่ว่าจะเป็น Outlook Express, Office Outlook หรือพวก ThunderBird ของ Mozilla ก็จะอ่านได้อยู่แล้วเพราะว่าด้วยตัวของมัน Support Mail รูปแบบนี้มานานแล้ว และด้วยตัวโปรแกรมเหล่านี่สามารถปรับเปลี่ยนได้ตาม Encoding ที่กำหนดไว้ที่หัวจดมหมายอยู่แล้ว ไม่เหมือนกับ Browser ที่จำเป็นต้องมีการเปลี่ยน Encoding อีกทีจากการแสดงผลนั้นเอง

จากเมลที่ได้ส่งมาจาก Gmail นั้น จะมี Encoding เป็น UTF-8 ซึ่งเป็น มาตรฐานของ Gmail และ ยังไม่มีทางแก้ไขได้จากการ Setting ของ User ซึ่งการที่จะแก้ปัญหาที่ต้นเหตุคือการเมลไปบอกทาง Gmail ( Google ) เพื่อให้เค้าทำการแก้ไขหรือ เพิ่มค่า Setting ให้กับเรา แต่ตอนนี้เราต้องแก้ที่ปลายเหตุโดยใช้วิธีแก้ Encoding ที่ Browser แทนไปก่อน เพื่อจะได้อ่านเมล จาก Gmail ซึ่งส่งไปให้ผู้บริการเมลอื่นๆ ได้อย่างไม่มีปัญหา

 

Browser Internet Explorer (ทดสอบจาก Hotmail)

  • จากภาพที่ 1 นั้น เมลที่ส่งมาจาก Gmail และรับโดย Hotmail ถ้าไม่ได้เปลี่ยน Encoding จะเป็นดังภาพ


ภาพที่ 1

  • ภาพที่ 2 แต่พอเราแก้ตามเป็น Unicode (UTF-8) เราก็จะสามารถอ่านภาษาไทยที่ส่งมาได้แล้ว
    • โดยคลิ้กขวาที่พื้นเว็บ แล้วจะมี เมนูขึ้นมา
    • ให้ไปที่ Encoding > Unicode (UTF-8)
    • ก็จะแสดงผลเป็นภาษาไทยครับ


ภาพที่ 2

 

Browser Mozilla Firefox (ทดสอบจาก Hotmail)

  • จากภาพที่ 3 นั้นผมลองเปลี่ยนเป็น Thai (TIS-620) ก็มีอาการเช่นเดียวกัน แต่ว่า Mozilla Firefox จะฉลาดกว่า IE ในเรื่องนี้ คือเข้ามาปุ๊บอ่านภาษาไทยได้เลยเพราะว่ามันปรับให้ Encoding ให้เราเลย แต่ถ้าไม่ได้ปรับก็ปรับได้จาก Menu Bar โดยไปที่ View > Character Encoding Unicode (UTF-8) ดังภาพที่ 4 แต่ที่ผมลองเปลี่ยนไป Thai (TIS-620) เพื่อทดสอบดูเท่านั้น


ภาพที่ 3

  • ภาพที่ 4 ซึ่งจากภาพที่ 3 เมื่อเราแก้เป็น Unicode (UTF-8) เราก็จะสามารถอ่านภาษาไทยที่ส่งมาได้แล้ว


ภาพที่ 4

ทำให้เมลจากผู้ให้บริการเมลอื่นๆ หรือฟรีเมลที่อื่นอ่านภาษาไทยได้เมื่อส่งมายัง Gmail 

  • จากที่ภาพที่ 5 นั้น จะเห้นว่าเมลจากที่อื่นเราไม่สามารถอ่านได้ เราแก้ได้โดยไปที่เมนู More Options

ภาพที่ 5

  • จากที่ภาพที่ 6 ตัวระบบ จะแสดงเมนูเพิ่มเติมออกมา ให้เลือก Show original

ภาพที่ 6

  • ภาพที่ 7 นั้นจะเห้นว่าเราสามารถอ่านภาษาไทยได้แล้ว แต่ค่อนข้างยุ่งยากสักหน่อย แต่ว่าก็ทำให้อ่านได้ทุกเมลครับ ………

ภาพที่ 7

 

หวังว่าจะมีประโยชน์สำหรับคนที่ใช้เมลของ Gmail นะครับ ถ้ามีข้อเสนอแนะหรือเทคนิคใหม่ๆ ต้องการเผยแพร่ก็เมลมาหาผมได้ครับ

ทำให้ Mozilla Firefox ใช้ภาษาไทยอย่างสมบูรณ์

*ในการอธิบายนี้ใช้ Firefox Version 0.9.2 – 1.0.7

* สำหรับ Mozilla Firefox 1.5 นั้นอยู่ที่ ปรับแต่งให้ Mozilla Firefox 1.5 ใช้ภาษาไทยอย่างสมบูรณ์

Read more

ทำให้ Windows XP ใช้ภาษาไทยได้ และสลับภาษาด้วย Grave Accent (`)

วันนี้ผมได้เอาวิธีในการปรับแต่งให้ Windows XP นั้นใช้ภาษาไทยได้สมบูรณ์และยังสามารถทำการปรับคีย์ภาษาโดยคีย์ Grave Accent (`) อีกด้วย … เรามาดูกันว่าทำกันอยางไรครับ …… ซึ่งไม่ใช่เรื่องยากครับ เพราะว่าสอนแบบ Step by Step เลยครับ

  1. ไปที่ Start ตามด้วย Control Panel แล้วไปที่ Regional and Language Options ครับ
  1. ที่ Tab คำสั่ง Languages นั้นไปที่ Supplemental language support ให้เลือก Install files for complex cript and right to left languages(including Thai) เพื่อติดตั้งภาษาไทย และที่ Install files for East Asian Languages ด้วยครับ แล้วกด Apply ก่อนนะครับ
  1. ที่ Tab คำสั่ง Regional Options ตั้งค่าที่ Standards and formats เป็น Thai และ Location ให้เป็น Thailand ให้เหมือนรูปด้านล่างครับ

4.ไปที่ Tab คำสั่ง Advanced แล้วไปที่ Language for non-Unicode programs ให้เลือก Thai แล้ว กด Apply ซึ่งขั้นนี้อาจจะต้องใช้แผ่นติดตั้ง Windows Xp และ Restart
เครื่องครับ

5.หลังจาก Restart ก็มาสู่การปรับการเปลี่ยนภาษาแบบ Accent Engrave (หรือ คีย์ ~)

6.กลับมาที่ Regional and Language Options ตามเดิมครับ (เหมือนในข้อที่ 1) แล้วเลือกไปที่ Tab คำสั่ง Details ครับ

7.จะมีหน้า Text Services and Input Languages ขึ้นมาแล้วจากนั้น กดที่ Key Settings…

8.จะมีหน้า Advanced Key Settings ขึ้นมาแล้วจากนั้น กดที่ Change Key Sequence…

9.เลือก Grave Accent (`) แล้วก็กด OK ออกมาครับ

  1. เพื่อทำให้มันสมบูรณ์ก็ Restart อีกรอบครับ คราวนี้ท่านจะได้ใช้ภาษาไทยอย่างมีความสุขแล้วครับ