นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน
อ่าน: 3762
ความเห็น: 6

UTF-8 กับ TIS-620 รหัสภาษาที่ไม่ควรมองข้าม

แล้วค้นไปเจอบทความในเรื่องเกี่ยวกับ UTF-8 มา เลยขออนุญาตินำเนื้อหาของเจ้าของบทความาเผยแพร่ต่อและเราเองจะได้เก็บไว้กันลืมครับ

พอดีกำหลังหาข้อมูลเกี่ยวกับ รหัสภาษา UTF-8 ที่ใช้เป็นมาตราฐานปัจจุบัน ในการนำภาษาไทยมาใช้บนเว็บไซต์ และในฐานข้อมูลบนเว็บไซต์ ครับ

แล้วค้นไปเจอบทความในเรื่องเกี่ยวกับ UTF-8 มา เลยขออนุญาตินำเนื้อหาของเจ้าของบทความาเผยแพร่ต่อและเราเองจะได้เก็บไว้กันลืมครับ



PHP Language



 

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 เดิมที่มีอยู่

โปรแกรมแปลงระบบเป็น UTF-8
    1. โปรแกรมแปลงฐานข้อมูล MySQL จาก TIS-620, CP874, MacThai เป็น UTF-8
    2. โปรแกรมแปลงไฟล์ จาก TIS-620,CP874,MacThai เป็น UTF-8

ดาวน์โหลดได้จาก : http://prdownloads.sourceforge.net/appserv/appserv-Tis2utf8-1.0.zip?download


** หมายเหตุ ** 
    โปรแกรมที่แจกไม่ใช่ Freeware ไม่ใช่ Shareware แต่เป็น Open Source นะครับ
สงวนลิขสิทธิ์ในรูปแบบ GPL สรุปคือเอาไปใช้กันได้เลยครับไม่ต้องคิดมาก
และที่สำคัญโปรแกรมอาจจะมี Bug บ้าง ใครแก้ Bug แล้วกรุณาส่งกลับมาด้วยครับ
เผื่อจะได้แจกจ่ายให้กับคนอื่นๆ อีกต่อไปครับ ตอนแก้ใส่ Credit มาด้วยนะครับว่าแก้ตรงไหน
โปรแกรมนี้ สามารถแปลงจาก Charset ไหนๆ ก็ได้ในโลก ไปเป็น Charset ไหนๆ ก็ได้อีก
ทำได้โดยแก้ไข Source Code กันเอาเองนะครับ ถ้าอยากแปลงเป็นอย่างอื่น
วิธีการใช้งานต่างๆ มีอยู่ในไฟล์โปรแกรมแล้วครับลองเปิดดู


ข้อมูลอ้างอิง TIS-620
- http://www.nectec.or.th/it-standards/std620/std620.htm
- http://software.thai.net/tis-620/index.html
- http://linux.thai.net/~ott/docs/tis-620.html
- http://en.wikipedia.org/wiki/TIS-620

แหล่งข้อมูล : http://www.appservnetwork.com/modules.php?name=News&file=article&sid=3

หมวดหมู่บันทึก: เรื่องทั่วไป
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ Copyright
สร้าง: 23 กุมภาพันธ์ 2551 22:00 แก้ไข: 21 มิถุนายน 2552 14:39 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

  • แวะเข้ามาส่งยิ้ม ^____^  ยามดึกค่ะ
  • ขอบคุณสำหรับความรู้ดี ๆ ที่อยู่ใกล้ตัวค่ะ
  • เลือกเวลาโพสต์ป่าวคะ 22.00 เป๊ะเลย อิอิ
  • ขอบใจจ๊ะสำหรับรอยยิ้มอันแสนหวาน
  • ส่วนเวลาโพสอันั้นนั่งนับเป็นวินาทีเลยละ อิอิ (ล้อเล่นนะ)

น้อง dankejung ตั้งใจโพสตอบ วันที่ 23 เวลา 23.23 น. เลขช่างบังเอิญเหลือเกินนะ นั่งนับเววลาใช่ไหม อิอิ

  • ตอนโพสต์ไม่ทันได้ดูเวลาค่ะ แหะ ๆ เลขสวยจริง ๆ ชอบ ๆ อิอิ
  • สรุปว่าไม่ตั้งใจใช่ไหมครับ
  • แล้วคราวนี้มาโพสเวลา 00:00 นี่ละ ตั้งใจหรือไม่ตั้งใจอีกละน้องจ๋า
  • เหอ ๆ แว้บมาตอบว่า  ไม่ตั้งใจค่ะ แว้บ ไปดีกว่า หยบ ๆ

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 35.175.121.230
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ