Notepad++ สั่ง Save As จะมีถามให้เลือก Encoding 4 แบบ
- ANSI
- UTF-8
- Unicode
- Unicode big endian
แล้วเราควรจะเลือกแบบไหน?
ANSI คือการบันทึกแบบ 8 บิต ได้ทั้งไทยและอังกฤษ โดยจะใช้ TIS-620 หรือ Windows-874 ก็ได้หากไม่ระบุระบบจะกำหนดให้
ข้อเสีย: ไม่รองรับอักษรพิเศษ(סּ͡͡_סּ͡ จะแสดงเป็น ???)
เช่น "ABC กขค" จะบันทึกเป็น
41 42 43 20 A1 A2 A4
UTF-8 คือการบันทึกอักษรอังกฤษ เป็นแบบ 8 บิต และบันทึกอักษรไทยแบบ 24 บิต (3 ไบต์) เป็นที่นิยมใช้ในปัจจุบัน รองรับทุกภาษารวมทั้งอักษรพิเศษ
เช่น "ABC กขค" จะบันทึกเป็น
EF BB BF 41 42 43 20 E0 B8 81 E0 B8 82 E0 B8 84
ค่า EF BB BF ที่อยู่ต้นไฟล์ คือ BOM ของ UTF-8 แต่ใน UTF-8 ค่านี้ไม่มีผล เพราะเรียงข้อมูลเป็นแบบไบต์อยู่แล้ว โปรแกรมทั่วไปสามารถใช้ BOM นี้ในการบอกได้ว่าไฟล์นี้เป็นแบบ UTF-8
Unicode คือการบันทึกแบบ 16 บิต ต่อตัวอักษร หรือ UTF-16 (กรณีภาษาอังกฤษและไทย แต่บางภาษาอาจใช้ 32 บิต)
เช่น "ABC กขค" จะบันทึกเป็น
FF FE 41 00 42 00 43 00 20 00 01 0E 02 0E 04 0E
ค่า FF FE ที่อยู่ต้นไฟล์ คือ BOM (Byte order mark) ของ Unicode UTF-16 สำหรับบอกว่า รหัส Unicode ที่ตามมานั้น จะเรียงโดย ไบต์ต่ำมาก่อน (Little Endian = LE) โปรแกรมทั่วไปสามารถใช้ BOM นี้ในการบอกได้ว่าไฟล์นี้เป็นแบบ UTF-16 (LE)
Unicode Big Endian คือการบันทึกแบบ UTF-16 แต่เรียงไบต์สูงมาก่อน (Big Endian)
เช่น "ABC กขค" จะบันทึกเป็น
FE FF 00 41 00 42 00 43 00 20 0E 01 0E 02 0E 04
ค่า FE FF ที่อยู่ต้นไฟล์ คือ BOM ของ UTF-16 ((Big Endian =BE)
โดย เขียนเว็บไซต์