2. ข้อมูลเกี่ยวกับภาษาไทยบนคอมพิวเตอร์

ส่วนนี้จะพูดถึง มาตรฐานเกี่ยวกับ ภาษาไทยบนคอมพิวเตอร์ รวมทั้งการใช้งานข้อมูลภาษาไทย และ การแสดงข้อมูลให้เหมาะสมกับท้องถิ่น (Localization) สำหรับภาษาไทยด้วย

TIS-620 หรือ มอก. 620 หรือที่เรียก กันทั่วไปว่า รหัส สมอ. เป็นมาตรฐานของรหัสตัวอักษร (Charset Code) ที่ใช้บนคอมพิวเตอร์ ซึ่งกำหนดโดยสำนักงานมาตรฐานอุตสาหกรรม หรือ สมอ. (Thai Indrustial Standards Institute [TISI]). TIS-620 เป็นรหัสตัวอักษรที่ต่อเพิ่มจากรหัสตัวอักษรของ ISO-646 ซึ่งเป็น รหัสตัวอักษรแบบ 7 bit คล้าย ๆ ASCII

มาตรฐาน TIS-620 ตัวแรกคือ TIS-620 2529 (1986) ซึ่งได้มีการแก้ไขเพิ่มเติมอีก ในปี 2533 เป็น TIS-620 2533 (1990) เพื่อเพิ่มเนื้อหาบางส่วนให้สอดคล้องกับ ISO/IEC 2022 แต่ตารางรหัสตัวอักษรทั้งหมดยังคงเหมือนเดิม

ปัจจุบัน GNU C library (GLIBC) ได้สนับสนุนมาตรฐาน TIS-620 ในการใช้งาน สำหรับกับท้องถิ่นประเทศไทยและภาษาไทย ภายใต้ชื่อ th_TH (th_TH.TIS-620)

โปรแกรมในปัจจุบันได้เริ่มออกแบบให้สามารถใช้ได้หลายภาษา (multilingual) โดยใช้ มาตรฐานของตัวอักษร ของ ISO/IEC 10646 (Universal Multi-octet Coded Character Set - UCS) ซึ่งเป็นระบบสำหรับเก็บข้อมูลตัวอักษรสากลในระบบ 8bit (หรือ byte) ซึ่งอาจอยู่ในรูป 8 bit หลาย ๆ ตัวต่อกัน และรู้จักกันดีในชื่อ Unicode UCS หรือ UTF-8

Unicode Consortium ได้รับการก่อตั้งขึ้นมา ก่อนที่ ISO/IEC จะกำหนดมาตรฐาน ISO/IEC 10646 นี้ขึ้นสำหรับเป็นมาตรฐานสากล ในปัจจุบัน Unicode Consortium เป็นคณะกรรมการ และเป็นผู้ลงคะแนนร่วมกับผู้แทนจากหลาย ๆ ประเทศสมาชิก ในการร่างและกำหนดมาตรฐาน เกี่ยวกับ Unicode ด้วย

สำหรับข้อมูลอื่น ๆ ที่เกียวกับ Unicode หรือ UCS บนลินุกซ์ สามารถอ่านได้จาก UTF-8 and Unicode FAQ for Unix/Linux ครับ

สำหรับรหัสตัวอักษรต่าง ๆ ของภาษาไทยบน Unicode และ ISO/IEC 10646-1 นั้น ได้ถูกจัดให้ อยู่ในลำดับที่ 0x0E00-0x0E7F ซึ่งมีการเรียงลำดับตัวอักษรเหมือนกับในมาตรฐาน TIS-620 ในลำดับ 0xA0-0xFF ครับ

สำหรับข้อมูลและรายละเอียดอื่น ๆ เกี่ยบกับรหัสตัวอักษรภาษาไืทย และมาตรฐานของชุดตัว อักษรไทยอื่น ๆ สามารถอ่านได้จาก An annotated reference to the Thai implementations ของ ตฤณ ตัณฑเศรษฐี ครับ และยังมีข้อมูลอื่น ๆ เพิ่มเติ่มอีกในหัวข้อ ข้อมูลอื่น ๆ ด้านล่างครับ

TIS-820 หรือ มอก. 820 เป็นมาตรฐานของแป้นพิมพ์ภาษาไทย ซึ่งกำหนดโดย สำนักงานมาตรฐานอุตสาหกรรม (สมอ.) สำหรับมาตรฐานในปัจจุบับคือ TIS-820 2538 (1995)

มาตรฐาน TIS-820 ตัวแรกคือ is TIS-820 2531 (1988) รูปแบบของแป้นพิมพ์ ใน TIS-820 2531 จะเหมือนกับแป้นพิมพ์แบบเกษมณี ที่ใช้กันบนพิมพ์ดีดภาษาไทย ต่อมา มีการกำหนดมาตรฐาน การใช้งานและรับข้อมูลภาษาไทย ซึ่งกำหนดโดย Thai API Consortium (TAPIC) ซึ่งมีชื่อว่า WTT หรือ วทท. (ย่อมาจาก วิ่งทุกที่) ซึ่งได้มีการกำหนดส่วนเพิ่มเติมให้กับ TIS-820 2531เพื่อให้ปุ่มกดบางปุ่ม ใช้งานร่วมกับภาษาละติดได้ หลังจากมีการประกาศมาตรฐาน WTT 2.0 แป้นพิมพ์ ของ TIS-820 2531 ที่มีการ เพิ่มเติมตาม วทท 2.0 ก็ได้รับการกำหนดเป็นมาตรฐานใน TIS-820 2536 (1993)

ในปี 2538 มีการปรับปรุง TIS-820 ใหม่ เป็น TIS-820 2538 ซึ่งเพิ่มเติมให้สามารถพิมพ์ตัวอักษรพิเศษบางตัวได้ และได้ย้ายัวอักษรบางตัวด้วย แต่ อย่างไรก็ตาม แป้นพิมพ์ตามาตรฐาน TIS-820 2538 ยังคงเหมือนของเดิมเกือบทั้งหมด และมีการกำหนดมาตรฐานบางอย่างให้รองรับ วทท 2.0 โดย ตัวบอก ตัวอักษรละติด กับ ไทย ต้องอยู่บนปุ่มกดและใช้สีต่างกัน

แป้นพิมพ์ของ TIS-820 นั้นยังคงใช้รูปแบบการวางปุ่มกดแบบ แป้นพิมพ์แบบเกษมณี เพียงแต่มีการแก้ไขเล็กน้อยเท่านั้น แป้นพิมพ์ของคอมพิวเตอร์ที่เป็น TIS-820 ในปัจจุบัน จึงยังคงเรียกว่า แป้นพิมพ์แบบเกษมณี ส่วนอีกแบบคือปัตตะโชตินั้นไม่ได้รับความนิยม และแทบจะไม่มีใช้ในปัจจุบัน ทั้งที่ริล้วแบบปัตตะโตินั้นพิมพ์ได้ง่ายกว่า และสิ้นเปลืองแรงน้อยกว่าเพราะสร้างขึ้นจากการวิจัยการใช้งานของนิ้วบนแป้นพิมพ์

สำหรับข้อมูลอื่น ๆ เพิ่มเติม รวมทั้งรูปแบบแป้นพิมพ์อื่น ๆ สามารถอ่านได้จาก http://www.nectec.or.th/it-standards/keyboard_layout/thai-key.htm ครับ

ยังไม่มีข้อมูลครับ

Thai API Consortium ได้กำหนดมาตรฐานการรับส่งข้อมูลและการจัดการเกี่ยวกับภาษาไทย เรียกว่า WTT 2.0 หรือ วทท. 2.0 (“วิ่งทุกที่”) ซึ่งปัจจุบันคือ TIS-1566 2541 (1998) สำหรับรายละเอียด สามารถดูได้จาก WTT 2.0 Thai Input and Output Method ข้อมูลเกี่ยวกับ การใช้งานตามมาตรฐาน ดูได้จาก Thai standardization and implementations โดย เทพพิทักษ์ การุญบุญญานันท์ <thep@links.nectec.or.th> และ แผ่นใส ในรูปแบบ .pdf

Locale (อ่านว่า "โลแคล") หรือ รูปแบบข้อมูลท้องถิ่น เป็นส่วนหนึ่งของระบบ Internationalization (i18n) และ Localization (l10n) เพื่อให้โปรแกรมต่าง ๆ สามารถที่จะแสดง และจัดการข้อมูลในแต่ละภาษาและท้องถิ่น ได้อย่างถูกต้องเหมาะสม Locale ต่าง ๆ ของแต่ละภาษาและท้องถิ่นจะมีลักษณะเป็น ส่วน ๆ ซึ่งสามารถเพิ่มเข้าไปในระบบ Localization ต่าง ๆ ได้ และแต่ละ Locale จะเป็น อิสระจากกัน รูปแบบข้อมูลท้องถิ่นอาจจะรวมไปถึงข้อมูลสำหรับจัดการข้อความที่ซับซ้อน เช่นการจัดเรียง การตัดคำ และอื่น ๆ

ระบบ Localization ใน Linux ส่วนใหญ่จะอาศัยระบบหลัก ๆ คือ POSIX Locale ซึ่งอยู่ใน C Library เช่น GLIBC ซึ่งใน POSIX Locale การทำงานจะใช้ค่าตัวแปรระบบ (LC_...) ซึ่ง จะประกอบด้วยส่วนต่าง ๆ ดังนี้

  • LANG ใช้สำหรับกำหนด Locale ทั้งหมด (มีผลให้มีการเปลี่ยน Locale เฉพาะทั้งหมด) ซึ่งจะมีการกำหนดไว้ล่วงหน้า
  • LC_ALL ใช้สำหรับกำหนด Locale ที่จะใช้งาน ในกรณีที่ Locale เฉพาะไม่มีการกำหนด
  • LC_COLLATE คือ Locale ที่จะใช้สำหรับจัดการเทียบตัวอักษร
  • LC_CTYPE คือ Locale ที่จะใช้สำหรับจำแนกตัวอักษร
  • LC_MONETARY คือ Locale ที่จะใช้สำหรับข้อมูลเกี่ยวกับเงินตรา
  • LC_NUMBERIC คือ Locale ที่จะใช้สำหรับแก้ไขตัวเลข
  • LC_TIME คือ Locale ที่จะใช้สำหรับข้อมูลวันที่และเวลา
  • LC_MESSAGE คือ Locale ที่จะใช้สำหรับข้อความต่าง ๆ
และยังมีส่วนของข้อมูล Locale อีกคือ
  • Charmap คือตารางข้อมูลของรหัสอักษร คือ TIS-620 2533
  • Repertoiremap คือตารางข้อมูลของรหัสอักษรภาษาไทย บนรหัส Unicode

อีกระบบที่นิยมใช้คือ ISO/IEC 14652 ซึ่งเป็นส่วนต่อขยายจาก POSIX LOCALE ซึ่งประกอบด้วย

  • LC_PAPER Locale ที่จะใช้สำหรับขนาดกระดาษ
  • LC_NAME คือ Locale ที่จะใช้สำหรับรูปแบบชื่อสกุล
  • LC_ADDRESS คือ Locale ที่จะใช้สำหรับที่อยู่
  • LC_TELEPHONE คือ Locale ที่จะใช้สำหรับโทรศัพท์
  • LC_MESUREMENT คือ Locale ที่จะใช้สำหรับการวัด
  • LC_VERSIONS คือ Locale ที่จะใช้สำหรับบอกรุ่นที่ของ Locale

สำหรับข้อมูลเกี่ยวกับ Thai Locale เพิ่มเติมสามารถดูได้ที่ http://www.links.nectec.or.th/~thep/th-locale/ โดยคุณ เทพพิทักษ์ การุณบุญญานันท์ (ซึ่งปัจจุบันเป็นผู้ ดูแล Thai Locale ทั้งใน POSIX และ ISO Locale ของ GLIBC ด้วย)

ข้อมูลเกี่ยวกับมาตรฐาน IT ของไทย (และอื่น ๆ) IT Standards on Pubnet Information Servers, NECTEC.

$Id: Thai-HOWTO-2.html,v 1.4 2002-03-05 17:12:49 sf_alpha Exp $