UTF-8 คือ character ที่สามารถรองรับการทำงานระบบหลายภาษา (Multi language)
ระบบ UTF-8 จะเก็บข้อมูล 1 - 4 ไบต์ต่อ 1 ตัวอักษร รายละเอียดอื่นๆ แนะนำ
http://en.wikipedia.org/wiki/UTF-8 ชัดเจนกว่าครับ
สำหรับคนไทยถึงเวลาแล้วหรือยังที่จะเปลี่ยนจาก TIS-620 เป็น UTF-8 ?
ในเรื่องนี้ก็คงต้องแล้วแต่ความคิดส่วนตัวของแต่ละบุคคลครับ ว่าสามารถยอมรับระบบใหม่ได้ไหม
แต่ในปัจจุบันสำหรับครับคิดผมก็คือ ถึงเวลาแล้วสำหรับ UTF-8 การที่เราจะรออนาคตให้มีการเปลี่ยนแปลง
แล้วเราจะเปลี่ยนตาม ตัวเราเองน่าจะเป็นผู้กำหนดอนาคตเอง มากกว่าให้คนอื่นมากำหนดอนาคตให้กับเรา
ในอดีตภาษาไทยที่มาก่อนรหัส TIS-620 (รหัสสมอ.) นั่นก็คือรหัสเกษตร สำหรับใครที่ใช้ DOS สมัยก่อน
คงจะรู้จักกันดี ในอดีตเราก็ยังเปลี่ยนแปลงจากรหัสเกษตรเป็น TIS-620 ได้ การที่เราจะเปลี่ยนแปลง
ปัจจุบัน UTF-8 ใกล้ชิดกับตัวเรามากที่สุด โดยที่เราไม่รู้ตัว ยกตัวอย่างเช่น ชื่อไฟล์ภาษาไทยที่อยู่บน
Windows XP นั้นก็เป็น UTF-8 อยู่แล้ว แต่เรายังไม่รู้ตัว, Google ก็ทำงานแบบ UTF-8 โดยที่เราไม่รู้ตัว
บางคนที่ใช้ Gmail อาจโทษว่า "Gmail ไม่รองรับภาษาไทย ส่งให้คนอื่นอ่านแล้วอ่านไม่ออก" ตรงนี้บอกได้เลยครับว่า
ไม่ต้องโทษ Gmail หรอกครับ ต้องโทษระบบอีเมล์ที่ไม่ยอมทำความรู้จักกับ UTF-8 น่าจะถูกต้องกว่า
อุปกรณ์ต่างๆ ไม่ว่าจะเป็นมือถือที่เป็น OS Symbian, Pocket PC เค้าก็ใช้ UTF-8 กันแทบทั้งสิ้น
ตอนนี้มีเพียงคำถามเดียวครับว่า เรายังจะยึดติดอยู่ที่ TIS-620 ไปตลอดหรือ ?
หากใครยังชั่งใจอยู่ในเวลานี้ ก็ศึกษาข้อมูลเพิ่มเติมได้ก่อนที่จะเปลี่ยนแปลงจริงๆ จังๆ อีกที
เริ่มต้นกับ UTF-8
มีคำถามมากมายเกี่ยวกับ UTF-8 ผมขอแยกเป็นข้อๆ ในส่วนของข้อดีและข้อเสีย
แล้วลองพิจารณาดูนะครับว่า ขณะนี้เราพร้อมแล้วหรือยังกับ UTF-8
ข้อดีของ UTF-8 กับ TIS-620
- รองรับได้หลายภาษา แน่นอนที่สุดสำหรับผมเลือกใช้เพราะสาเหตุนี้
- ภาษาโปรแกรมมิ่งทั้งหลายรองรับ UTF-8
- เข้ากันได้ดีกับรหัส ASCII
- การแปลงเป็น Charset ชนิดอื่นไม่ยุ่งยากโดยใช้ ICONV
- สามารถเรียงลำดับอักษรภาษาไทยได้ 100% ไม่มีผิดเพี้ยน
ข้อเสียของ UTF-8 กับ TIS-620
- มีปัญหาการทำงานกับฟังก์ชั่นในบางภาษา
- ภาษาไทยไม่ได้มีเพียงแค่ TIS-620 (มีทั้ง CP874, MacThai)
อ้างอิงจาก
http://www.gnu.org/software/libiconv/
- เสียเวลาในการเขียนโปรแกรมแปลงฐานข้อมูล และไฟล์ให้เป็น UTF-8
- การออกแบบฐานข้อมูล (Field) ต้องไม่ยึดติดกับความกว้างตัวอักษรแบบเดิม เพราะ UTF-8 จะเก็บเป็น Byte
สรุปคือต้องขยายความกว้าง Field เกือบทุก Field ที่เป็น Varchar เพื่อรองรับ UTF-8
ปัญหาสำหรับนักพัฒนาภาษา PHP กับ UTF-8
การปรับมาใช้ UTF-8 นั้นก็เป็นปัญหาสำหรับโปรแกรมเมอร์เหมือนกัน โดยตัวอย่างที่ผมจะอธิบายต่อไปนี้
ก็ขออ้างอิงถึงภาษา PHP ครับ เพราะปัจจุบันผมก็เขียนโปรแกรมกับภาษานี้อยู่ ซึ่งปัญหาหลักๆ เกิดจาก
การเขียนโปรแกรมแล้วเลือกใช้บางฟังก์ชันไม่ได้ หรือต้องปรับแก้โปรแกรมหรือใช้ฟังก์ชันที่รองรับ UTF-8
ฟังก์ชันที่มีปัญหากับ UTF-8 ในภาษา PHP อ่านรายละเอียดเพิ่มเติมได้ที่
http://www.phpwact.org/php/i18n/utf-8
โดยแต่ละฟังก์ชันจะมีการแจกแจงผลกระทบตั้งแต่ระดับ สูง - กลาง - ต่ำ ละเอียดดีครับ
พร้อมแล้วหรือยังที่จะแปลงระบบโปรแกรมและฐานข้อมูลเป็น UTF-8 ?
ข้อนี้ต้องถามตัวเองแล้วครับว่าพร้อมแล้วหรือยัง ส่วนผมพร้อมแล้วและก็ทำไปแล้ว
ท่องไว้ครับคำนี้นะ "อย่ายึดติดกับระบบเดิมๆ" ปัญหาต่างๆ เหล่านี้สามารถแก้ไขได้ครับ
เพราะว่าบางฟังก์ชันเราก็เขียนขึ้นมาใหม่ แทนที่ฟังก์ชันเดิมที่ไม่รองรับ UTF-8
ว่าแล้วก็แจกโปรแกรมแปลงเลยครับ โดยในโปรแกรมจะมีตัวอย่างฟังก์ชัน substr_utf8 ที่เขียนขึ้น
โดยสามารถรองรับ UTF-8 แทนฟังก์ชัน substr เดิมที่มีอยู่
โดยคุณ