รหัสตัวอักษร : ยูนิโค้ด (Unicode)
ความหมาย

ยูนิโค้ด (Unicode) คือ Universal Character Set (UCS) การกำหนดหมายเลขเฉพาะสำหรับทุกอักขระ โดยไม่ขึ้นกับแพล็ตฟอร์ม ไม่ขึ้นโปรแกรม และคลุมทุกภาษา
หรือ ยูนิโคด (Unicode) คือ มาตรฐานอุตสาหกรรมที่ช่วยให้คอมพิวเตอร์แสดงผล และจัดการข้อความธรรมดา ที่ใช้ในระบบการเขียนของภาษาส่วนใหญ่ในโลกได้อย่างสอดคล้องกัน ยูนิโคดประกอบด้วยรายการอักขระที่แสดงผลได้มากกว่า 100,000 ตัว พัฒนาต่อยอดมาจากมาตรฐานชุดอักขระสากล (Universal Character Set: UCS) และมีการตีพิมพ์ลงในหนังสือ The Unicode Standard เป็นแผนผังรหัส เพื่อใช้เป็นรายการอ้างอิง โดยมี ยูนิโคดคอนซอร์เทียม (Unicode Consortium) เป็นองค์กรไม่แสวงหาผลกำไร เป็นผู้รับผิดชอบในการพัฒนายูนิโคด
รุ่นของ Unicode
Unicode รุ่น 1.0.0
ออกปี 2534 รองรับ 24 Character set ครอบคลุม 7,161 รูปแบบ
Unicode รุ่น 6.3.0
ออกปี 2556 รองรับ 93 Character set คลุม 110,187 รูปแบบ
ปัจจุบันนิยมใช้ Unicode 2 แบบ
คือ UTF-8 และ UTF-16
[UTF-8] นิยมใช้ใน Linux
[UTF-16] นิยมใช้ใน Windows2000 เป็นต้นไป
อ้างอิง : มาตรฐานภาษาไทย ใน thaicert

UTF8 คือ ชุดอักขระ (Unicode Transformation Format) หรือ การกำหนดหมายเลขเฉพาะสำหรับทุกอักขระ โดยไม่ขึ้นกับแพล็ตฟอร์ม ไม่ขึ้นโปรแกรม และคลุมทุกภาษา นิยมใช้ใน Linux ซึ่ง UTF8 เป็นชุดอักขระที่เป็นที่รู้จักมากที่สุด ใช้ 1 ไบต์สำหรับอักขระทุกตัวในรหัสแอสกี และมีค่ารหัสเหมือนกับมาตรฐานแอสกี หรือมากกว่านั้นจนถึง 4 ไบต์สำหรับอักขระแบบอื่น

UTF16 คือ ชุดอักขระ (Unicode Transformation Format) หรือ การกำหนดหมายเลขเฉพาะสำหรับทุกอักขระ โดยไม่ขึ้นกับแพล็ตฟอร์ม ไม่ขึ้นโปรแกรม และคลุมทุกภาษา นิยมใช้ใน Windows ซึ่ง UTF16 เป็นส่วนขยายจาก UCS-2 โดยใช้ 4 ไบต์สำหรับแทนรหัสอักขระที่ขาดไปของ UCS-2

ASCII (American Standard Code for Information Interchange) คือ รหัสที่อเมริกากำหนดขึ้นมา เพื่อใช้ในการแลกเปลี่ยนข้อมูล ชุดอักขระแอสกี (ASCII character set) ใช้ในการอ้างอิงว่ารหัสนี้แทนตัวอักษรอะไร ASCII มีมาตรฐานต่างกันไปตามซอฟต์แวร์ แต่ใช้ 7 bit แรกเป็นรหัสอักษรภาษาอังกฤษเหมือนกัน ที่เหลือขึ้นกับแต่ละมาตรฐาน เช่น ตัว A ในภาษาอังกฤษ ถูกแทนด้วย 65 ในฐาน 10 หรือ 41 ในฐาน 16 ซึ่งชุดตัวอักษรของ ASCII แบบ 8 bit ใช้ 1 byte ต่อ 1 character จึงเก็บอักขระได้ 256 แบบ ในยุคแรกภาษาไทยใช้ bit ที่ 8 ต่างกันไป เช่น รหัสเกษตรฯ รหัส สมอ. หรือรหัส MacThai อ่านเพิ่มเติมที่ มาตรฐานภาษาไทย

ANSI (American National Standards Institute) คือ สถาบันที่กำหนดมาตรฐาน ได้กำหนดมาตรฐานของตัวอักษร ในชื่อ ANSI character set ซึ่งกำหนดมาตรฐานไว้ 217 ตัวอักษร The ANSI set of 217 characters, also known as Windows-1252, was the standard for the core fonts supplied with US versions of Microsoft Windows up to and including Windows 95 and Windows NT 4. อ่านเพิ่มเติมที่ มาตรฐานแอนซี่

Entity code สำหรับ Webpage ก ใช้ ก

การจัดเก็บข้อมูลในแฟ้มแบบ Unicode เมื่อทดสอบใช้ Notepad บันทึกแฟ้มแบบ Encoding=Unicode มี "ก" 4 ไบท์ เก็บ FF FE 01 0E มี "ข" 4 ไบท์ เก็บ FF FE 02 0E มี "ค" 4 ไบท์ เก็บ FF FE 04 0E มี "1" 4 ไบท์ เก็บ FF FE 31 0E มี "กข" 6 ไบท์ เก็บ FF FE 01 0E 02 0E มี "a" 4 ไบท์ เก็บ FF FE 61 00 มี "abก" 8 ไบท์ เก็บ FF FE 61 00 62 00 01 0E มี "ก0ข1" 10 ไบท์ เก็บ FF FE 01 0E 30 00 02 0E 31 00 โดย FF FE คือ BOM (Byte order mark) ถูกใช้ที่ต้นแฟ้ม เพื่อระบุให้ทราบว่า แฟ้มนี้เป็น Unicode และเรียงแบบไบท์ต่ำมาก่อน (Little Endian = LE)

การจัดเก็บข้อมูลในแฟ้มแบบ UTF-8 เมื่อพิจารณาดูความแตกต่างของขนาดแฟ้ม พบว่า ประเภท UTF-8 จะมีขนาดแฟ้มแปรผัน ตามลักษณะของข้อมูล โดยตัวเลขใช้ 1 ไบท์ แต่ตัวอักษรใช้ 3 ไบท์ บางตัวถึง 4 ไบท์ เช่น "ก0ข1ค2" จะมีขนาด 15 bytes เพราะ กขค ใช้พื้นที่ 9 ไบท์ และ 012 ใช้พื้นที่ 3 ไบท์ รวม header 3 ไบท์ ก็จะเป็น 15 ไบท์ คือ EF BB BF - E0 B8 81 - 30 - E0 B8 82 - 31 - E0 B8 84 - 32 + http://www.thaiall.com/blog/admin/4557/

UTF-8 ต่างจาก UTF-16 อย่างไร พบว่า ทั้ง 2 ชุดอักขระ ต่างก็เป็นมาตรฐานชุดอักขระ ที่ใช้กำหนดตัวอักษรใน Unicode แต่มีหลักการจัดเก็บต่างกันทั้งขนาด Header และขนาดแต่ละตัวอักษร ซึ่ง UTF-8 เป็นมาตรฐานสำหรับ Linux แต่ UTF-16 เป็นมาตรฐานสำหรับ Windows รุ่นใหม่ ถ้าจัดเก็บตัวเลขเป็นส่วนใหญ่ พบว่าแฟ้มแบบ UTF-8 จะมีขนาดเล็กกว่า

UTF-8
เป็นมาตรฐานชุดอักขระ หากสร้างแฟ้มอักขระที่มีตัวอักษร 3 ตัว คือ "กขค" จะใช้พื้นที่ทั้งหมด 12 ไบท์ โดยใช้พื้นที่เก็บข้อมูลตัวอักษรละ 3 ไบท์ และส่วน header คงที่อีก 3 ไบท์ เมื่อใช้โปรแกรม editplus ที่กำหนด encoding type เป็น UTF-8 แล้วสร้างแฟ้ม พบว่า กอไก่ คือ E0 B8 81 ฐาน 16 ขอไข่ คือ E0 B8 82 ฐาน 16 คอควาย คือ E0 B8 84 ฐาน 16 โดย 3 ไบท์ แรกของแฟ้ม คือ EF BB BF ฐาน 16 แต่ตัวเลขในแฟ้มประเภท UTF-8 จะใช้ค่าตามตาราง ASCII เหมือนเดิม แต่อักษร 3 ไบท์ แรกก็ยังมีอยู่เหมือนเดิม เมื่อสร้างแฟ้มที่มี "012" ก็จะได้แฟ้มขนาด 6 ไบท์ ซึ่งมาตรฐาน UTF-8 กำหนดว่าภาษาไทย อยู่ระหว่าง 0xE0 0xB8 0x80 ถึง 0xE0 0xB9 0xBF แต่ถ้าเป็นมาตรฐาน unicode หรือ UTF-16 อยู่ระหว่าง U+0E00 (3584) ถึง U+0E7F (3711)
+ http://www.utf8-chartable.de
+ http://michal.kosmulski.org/computing/

UTF-16
หากกำหนดประเภทแฟ้มเป็น unicode หรือ UTF-16 แล้ว save แฟ้มข้อมูล "กขค" จะใช้พื้นที่ขนาด 8 ไบท์ พบว่า กอไก่ คือ 01 0E ฐาน 16 ขอไข่ คือ 02 0E ฐาน 16 คอควาย คือ 04 0E ฐาน 16 โดย 2 ไบท์ แรก คือ FF FE ฐาน 16 รวมกันเป็น FF - FE - 01 - 0E - 02 - 0E - 04 - 0E แต่ถ้าเป็นตัวเลข "012" ก็จะมีขนาดเท่ากับ "กขค" ที่ใช้พื้นที่ 8 ไบท์ คือ FF - FE - 30 - 00 - 31 - 00 - 32 - 00 ถ้าเป็นอักขระ "abc" ใช้พื้นที่ 8 ไบท์ โดย 2 ไบท์ แรกเหมือนเดิม แต่ข้อมูลคือ 61 00 62 00 63 00 รวมกันเป็น FF - FE - 61 - 00 - 62 - 00 - 63 - 00 ซึ่ง unicode จะมีขนาดแฟ้มเป็น 2 เท่าของจำนวนตัวอักษร รวม headder เมื่อรวมกับ header อีก 2 ไบท์ ก็จะรู้ว่าแฟ้มนี้มีกี่ตัวอักษร เช่น "ก0ข1ค2" จะมีขนาด 14 ไบท์
+ http://unicode-table.com/

พบปัญหา - การส่งภาษาไทย และจีนไปกับอีเมล ระบบของ Gmail รับภาษาได้ทีละภาษา เพราะไม่ได้แปลงอักขระเป็น html entities ถ้าส่งจีนหมด ก็อ่านจีนได้ แต่ถ้าผสมกันไป ภาษาจีนจะหาย ต้องแปลงก่อน
+ http://www.thaiall.com/blog/burin/7177/

ฝึกปฏิบัติอย่างง่าย
1. แปลงอักษรเป็น code
- ให้นักศึกษาพิมพ์ชื่อด้วย notepad แล้ว save เป็น ascii หรือ utf-16 หรือ utf-8
- แล้วค้นจากเน็ตมาตอบ ว่าถ้ามองในแฟ้ม ด้วย Debug จะเห็นอะไร
- แล้วถ้าคำนวณเอง โดยเข้าใจหลักการแล้ว จะเห็นอะไร
2. แปลงอักษรเป็น html entities
- เขียนเว็บเพจมีชื่อตนเองเป็น html entities แบบ Decimal
เช่น ก ข ฃ คือ ก ข ฃ
ใช้บริการ Convert character ได้

http://goo.gl/72BPC