หลายคนคงสงสัยว่ามันจะมีชุดตัวหนังสือ UTF-8 (Unicode Transformation Format) ไปทำไม เราก็ยังใช้ TIS-620 ดีอยู่แล้วไม่เน่าไม่เสีย แต่เนื่องจากตอนนี้CMS หลายๆค่ายหันมาใช้(บังคับใช้) UTF-8 ของ Unicode (ผมเองก็ใช้ UTF-8) แล้วจะถ้าคิดใช้โปรแกรมใหม่ๆ CMS ตัวใหม่ๆ ในอนาคตทั้งหมดจะสนับสนุน UTF-8 อย่างเดียว เช่น AppServ เวอร์ชั่นออกมาใหม่จะเป็น UTF-8 MAMBO 4.6 , Joomla! 1.5 ก็จะใช้ชุด(บังคับ) UTF-8 เท่านั้น เมื่อเห็นว่าอนาคตคงจะได้ใช้โปรแกรม ที่มันสนับสนุน ต่อไปนี้ถึงคราวสิ้นยุคทองของชุดตัวหนังสือ TIS-620 แล้ว >__<

หลายคนคงสงสัยว่ามันจะมีชุดตัวหนังสือ UTF-8 (Unicode Transformation Format) ไปทำไม เราก็ยังใช้ TIS-620 ดีอยู่แล้วไม่เน่าไม่เสีย แต่เนื่องจากตอนนี้CMS หลายๆค่ายหันมาใช้(บังคับใช้) UTF-8 ของ Unicode (ผมเองก็ใช้ UTF-8) แล้วจะถ้าคิดใช้โปรแกรมใหม่ๆ CMS ตัวใหม่ๆ ในอนาคตทั้งหมดจะสนับสนุน UTF-8 อย่างเดียว เช่น AppServ เวอร์ชั่นออกมาใหม่จะเป็น UTF-8 MAMBO 4.6 , Joomla! 1.5 ก็จะใช้ชุด(บังคับ) UTF-8 เท่านั้น เมื่อเห็นว่าอนาคตคงจะได้ใช้โปรแกรม ที่มันสนับสนุน ต่อไปนี้ถึงคราวสิ้นยุคทองของชุดตัวหนังสือ TIS-620 แล้ว >__<
UTF-8 เป็นที่มิยมมากเพียงแต่เราไม่ค่อยได้เห็นมันจะๆ จริงๆแล้ว UTF-8 มันอยู่รอบๆเรวเนี้ยครับ อย่างเช่น ชื่อไฟล์ภาษาไทยที่อยู่บน Windows XP นั้นก็เป็น UTF-8 แต่เรายังไม่รู้ตัว, Google (search engine) ก็ทำงานแบบ UTF-8 โดยที่เราไม่รู้ตัว อุปกรณ์ต่างๆ ไม่ว่าจะเป็นมือถือที่เป็น OS Symbian, Pocket PC เค้าก็ใช้ UTF-8 กันแทบทั้งสิ้น CMS หลานตัวก็ค่อยๆเปลี่ยนเป็นชุดตัวหนังสือนี้ MAMBO 4.6 , Joomla! 1.5 ก็จะใช้ชุด(บังคับ) UTF-8 เท่านั้น เมื่อเห็นว่าอนาคตคงจะได้ใช้โปรแกรม ที่มันสนับสนุน ต่อไปนี้ถึงคราวสิ้นยุคทองของชุดตัวหนังสือ TIS-620 แล้ว >__<
Joomla! 1.0.12 ภาษาไทย ตอนนี้มีให้ใช้อยู่สอง version JomlaSiam ซื่งเป็น TIS-620 กับ JoomlaLaiTai ซื่งเป็น UTF-8
ความแตกต่างของ UTF-8 กับ TIS-620 มันอยู่ตรงใหน? ชุดตัวหนังสือ UTF-8 เนี้ยสามารถใช้กับภาษาอะไรก็ได้ โดยเราไม่จำเป็นต้องเปลี่ยน encoding เลย ถ้า website ของคุณมี 2 ภาษา มันก็โชว์ทั้ง 2 ภาษา (Multi language) ระบบ UTF-8 จะเก็บข้อมูล 1 - 4 ไบต์ต่อ 1 ตัวอักษร รายละเอียดอื่นๆ
อ่านเพื่มเติมที่นี่ครับ http://en.wikipedia.org/wiki/UTF-8
แต่ว่าถ้ามองในแง่ลบ UTF-8 ก็ยังไม่ค่อยมีความจำเป็นเท่าไหร่นักและยังเปลืองน้อยที่เก็บข้อมูลกว่าของเดิมถึง 3-4เท่า เพราะ แต่ละตัวจะประกอบไปด้วยชุด นะ แบบนี้ซึ่ง TIS-620 จะเขียนได้ว่า ” นะ ” จะเห็นได้ว่าพื้นที่ในการเก็บข้อมูล ต้องเยอะขึ้นตามไปด้วย แต่ก็มีข้อดีอยู่บ้างในเรื่องการรองรับหลายภาษา (muli-language) และเราสามารถแปลงตัวอักษรจากแบบ UTF-8 มาเป็นแบบ TIS-620 โดยสามารถใช้ฟังก์ชัน iconv ครับ ใครอยากรู้ลองเข้าไปดูคำสั่งนี้แบบเต็มๆได้ที่นี่ครับ http://www.php.net/manual/en/function.iconv.php ส่วนถ้าต้องการ convert จาก UTF-8 มาเป็น TIS-620 ก็ใช้ประมาณนี้ครับ
echo iconv(’UTF-8, ‘TIS-620′, “helloสวัสดีครับ”);
หรือถ้าจาก TIS-620 มาเป็น UTF-8 ก็ประมาณนี้ครับ
echo iconv( ‘TIS-620′, ‘UTF-8′, “helloสวัสดีครับ”);
ซึ่งคำสั่งนี้ถูกหยิบยืมมาจาก library บน unix ที่มีชื่อว่า GNU libiconv ครับ ไปดูรายละเอียดได้ที่นี่ http://www.gnu.org/software/libiconv/ แต่ก่อนที่จะใช้คำสั่งนี้ได้ ต้องไป config ในไฟล์ php.ini โดยให้เอา comment บรรทัดนี้ออกครับ extension=php_iconv.dll และให้เอาไฟล์ php_iconv.dll ไปใส่ไว้ที่ c:\windows\system32 ด้วยครับ แล้ว restart apache ใหม่ ก็จะสามารถใช้ได้ครับ
ฟังก์ชัน iconv ใช้ด้กับ PHP5 เท่านั้นนะครับ
ข้อดีของ UTF-8
- รองรับได้หลายภาษา แน่นอนที่สุดสำหรับผมเลือกใช้เพราะสาเหตุนี้
- ภาษาโปรแกรมมิ่งทั้งหลายรองรับ UTF-8
- เข้ากันได้ดีกับรหัส ASCII
- การแปลงเป็น Charset ชนิดอื่นไม่ยุ่งยากโดยใช้ ICONV
- สามารถเรียงลำดับอักษรภาษาไทยได้ 100% ไม่มีผิดเพี้ยน
ข้อเสียของ UTF-8
- มีปัญหาการทำงานกับฟังก์ชั่นในบางภาษา
- ภาษาไทยไม่ได้มีเพียงแค่ TIS-620 (มีทั้ง CP874, MacThai)
- อ้างอิงจาก http://www.gnu.org/software/libiconv/
- เสียเวลาในการเขียนโปรแกรมแปลงฐานข้อมูล และไฟล์ให้เป็น UTF-8
- การออกแบบฐานข้อมูล (Field) ต้องไม่ยึดติดกับความกว้างตัวอักษรแบบเดิม เพราะ UTF-8 จะเก็บเป็น Byteสรุปคือต้องขยายความกว้าง Field เกือบทุก Field ที่เป็น Varchar เพื่อรองรับ UTF-8
{mospagebreak}
วิธี convert TIS-620 ให้เป็น UTF-8
ให้ไปทำการดาวน์โหลดไฟล์แปลง tis2utf8.php มาหรือโหลดได้ ที่นี้ หรือ http://www.appservnetwork.com/ เมื่อโหลดมาแล้วให้ทำการแตกไฟล์
แล้วเข้าไปแก้ไขไฟล์ ตามบรรทัดข้างล่างนี้
บรรทัดที่ 23 $dbhost = “localhost”; ใส่ชื่อโฮสฐานข้อมูล
บรรทัดที่ 24 $dbuname = “root”; ชื่อบัญชีผู้ใช้งานฐานข้อมูล
บรรทัดที่ 25 $dbpass = “”; รหัสผ่าน
บรรทัดที่ 26 $dbname = “cmsthai”; ชื่อฐานข้อมูลที่จะทำการแปลง
จากนั้นเมื่อบันทึกเรียบร้อยแล้วก็สั่งให้ Script ทำงาน สั่งตามรูป
หลังจากทำงานเสร็จก็จะมีหน้าแสดงผลดังรูปข้างล่างนี้
กลับมาดูฐานข้อมูลอีกครั้งจะเห็นได้ว่าตัวหนังสือสามารถแสดงผลได้อย่างถูกต้องแล้วครับ
โปรแกรมแปลงระบบเป็น UTF-8
- โปรแกรมแปลงฐานข้อมูล MySQL จาก TIS-620, CP874, MacThai เป็น UTF-8
- โปรแกรมแปลงไฟล์ จาก TIS-620,CP874,MacThai เป็น UTF-8
ดาวน์โหลดได้จาก : http://prdownloads.sourceforge.net/appserv/appserv-Tis2utf8-1.0.zip?download








Write a Wall RSS Feed