คำตอบสั้น ๆ: Encoding ไม่ตรงทำให้อีเมลภาษาไทยใน Outlook เป็นตัวต่างดาว เช่น ภหรือ เธ แก้ด้วยคำสั่ง Encoding เลือก UTF-8 หรือ Thai (Windows) และตั้งขาออกเป็น UTF-8
คู่มือนี้อธิบาย Encoding ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
Encoding คือวิธีที่โปรแกรมแปลงตัวอักษรเป็นข้อมูลก่อนส่ง และแปลงกลับตอนแสดงผล ถ้าผู้ส่งกับผู้อ่านใช้ Encoding ไม่ตรงกัน อีเมลภาษาไทยใน Outlook จะกลายเป็นตัวต่างดาว เช่น สวัสดี, เธชเธงเธฑเธชเธ”เธต, ÊÇÑÊ´Õ หรือ ?????? สาเหตุที่พบบ่อยที่สุดคืออีเมลจากระบบเก่า เช่น ERP เครื่องสแกน หรือฟอร์มบนเว็บ ที่ไม่ระบุ Encoding หรือระบุผิด ส่วนวิธีที่แก้ได้บ่อยที่สุดคือเปิดอีเมลฉบับนั้นใน classic Outlook แล้วใช้คำสั่ง Encoding เลือก Unicode (UTF-8) หรือ Thai (Windows) และตั้งให้อีเมลขาออกใช้ UTF-8
คู่มือนี้เขียนสำหรับผู้ใช้และไอทีในองค์กรไทยที่เจออีเมลภาษาไทยอ่านไม่ออก ทั้งฝั่งผู้รับและผู้ส่ง ใช้ได้กับ classic Outlook ใน Microsoft 365 Apps, Outlook 2016 ถึง 2024 ทุกชนิดบัญชี ทั้ง Microsoft 365/Exchange และ IMAP/POP ทำครบแล้วคุณจะอ่านอีเมลที่เพี้ยนได้ รู้ว่าความผิดอยู่ฝั่งไหน และตั้งค่าการส่งไม่ให้ผู้รับเจอปัญหาเดียวกัน
สิ่งที่ต้องเตรียม
- อีเมลที่เพี้ยนหนึ่งฉบับ และรู้ว่ามาจากใครหรือระบบไหน
- classic Outlook ซึ่งมีแท็บ File คำสั่ง Encoding ของข้อความที่ได้รับมีเฉพาะใน classic Outlook ถ้าใช้ new Outlook ดูหัวข้อท้ายคู่มือ
- เว็บเมลของบัญชีเดียวกัน เช่น Outlook on the web หรือเว็บเมลของผู้ให้บริการอีเมลบริษัท ไว้เทียบผล
- สำหรับไอที: สิทธิ์ดู header ของอีเมล และช่องทางติดต่อผู้ดูแลระบบที่ส่งอีเมลอัตโนมัติ
สาเหตุของ Encoding ภาษาไทยเพี้ยน
ภาษาไทยในอีเมลใช้ Encoding หลักสองแบบ คือ UTF-8 ซึ่งเป็นมาตรฐานสากล และ Thai (Windows) หรือ windows-874 ซึ่งเป็นรหัสภาษาไทยแบบเก่าที่ใกล้เคียง TIS-620 อีเมลที่ถูกต้องจะบอก Encoding ไว้ใน header เช่น Content-Type: text/html; charset="utf-8" ปัญหาเกิดเมื่อ
- ระบบที่ส่งไม่ระบุ charset หรือระบุไม่ตรงกับข้อมูลจริง Outlook จึงเดา Encoding ผิด อาการนี้เจอบ่อยกับระบบ ERP รุ่นเก่า โปรแกรมบัญชี เครื่องสแกนแบบ scan to email และสคริปต์ส่งอีเมลที่เขียนเอง
- Outlook ของผู้ส่งตั้ง Encoding ขาออกเป็นแบบที่ไม่มีภาษาไทย เช่น Western European ตัวอักษรไทยจึงถูกแทนด้วย
?ตั้งแต่ตอนส่ง และกู้คืนที่ฝั่งผู้รับไม่ได้ - หัวเรื่องหรือชื่อผู้ส่งเป็นภาษาไทยแต่ไม่ได้เข้ารหัสตามมาตรฐาน ทำให้เนื้อความอ่านได้แต่หัวเรื่องเพี้ยน
- เครื่องไม่มีฟอนต์ที่มีอักษรไทย ตัวอักษรจึงเป็นสี่เหลี่ยม ซึ่งไม่ใช่ปัญหา Encoding แต่มักถูกเข้าใจผิดว่าเป็น
วิธีแยกเร็ว: เปิดอีเมลฉบับเดียวกันในเว็บเมล ถ้าเว็บเมลแสดงภาษาไทยถูก ปัญหาอยู่ที่การแสดงผลของ Outlook ใช้ขั้นตอนที่ 2 ได้ ถ้าเว็บเมลก็เพี้ยนเหมือนกัน ปัญหาอยู่ที่ผู้ส่ง ต้องแก้ที่ระบบต้นทางตามขั้นตอนที่ 4
ขั้นตอนที่ 1: ดูว่าเพี้ยนแบบไหน และตรวจ charset ใน header
เทียบตัวอักษรที่เห็นกับตาราง ถ้าเห็น ภหรือ เธ ซ้ำ ๆ ข้อความเดิมคือ UTF-8 ถ้าเห็นตัวอักษรละตินมีเครื่องหมาย เช่น Ê Ç Ñ ข้อความเดิมคือ Thai (Windows) ถ้าเห็นเครื่องหมายคำถามล้วน ตัวอักษรหายไปแล้วตั้งแต่ต้นทาง
เพื่อยืนยัน ให้เปิดอีเมลแล้วไปที่ File > Info > Properties ดูช่อง Internet headers หาบรรทัด Content-Type ว่าระบุ charset อะไร ถ้าระบุ iso-8859-1 หรือไม่ระบุเลย แต่เนื้อความเป็นภาษาไทย แปลว่าผู้ส่งระบุ Encoding ผิด วิธีอ่าน header แบบละเอียดอยู่ในคู่มืออ่าน Email Header
ขั้นตอนที่ 2: เปลี่ยน Encoding ของอีเมลที่ได้รับใน classic Outlook
- ดับเบิลคลิกอีเมลให้เปิดเป็นหน้าต่างแยก คำสั่ง Encoding ไม่มีใน Reading Pane
- ที่แท็บ Message ในกลุ่ม Move คลิก Actions แล้วเลือก Other Actions > Encoding ถ้าหาไม่เจอเพราะใช้ริบบอนแบบย่อ ให้พิมพ์
Encodingในช่อง Search ด้านบนของหน้าต่าง - เลือก Unicode (UTF-8) ถ้าเห็นอาการแบบ ภหรือ เธ หรือเลือก Thai (Windows) ถ้าเห็นอาการแบบ ÊÇÑ (ถ้าไม่เห็นในรายการแรก ให้ดูใน More)
ถ้าภาษาไทยกลับมาอ่านได้ ถือว่าแก้แล้วสำหรับฉบับนั้น การเปลี่ยน Encoding เปลี่ยนแค่การแสดงผล ไม่ได้แก้ข้อมูลในอีเมล ถ้าต้องอ่านบ่อยจากระบบเดียวกัน ให้แก้ที่ต้นทางตามขั้นตอนที่ 4 อีกทางหนึ่งคือคำสั่ง View in Browser ในเมนู Actions เดียวกัน ซึ่งเปิดอีเมลในเบราว์เซอร์ที่มักเดา Encoding ได้ดีกว่า
ขั้นตอนที่ 3: ตั้ง Encoding ขาออกเป็น UTF-8
ขั้นนี้กันไม่ให้ผู้รับของคุณเจอตัวต่างดาวหรือ ??? ใช้ได้กับทุกชนิดบัญชี ทั้ง Microsoft 365 และอีเมลบริษัทแบบ IMAP/POP
- ไปที่ File > Options > Advanced เลื่อนลงถึง International options
- ที่ Preferred encoding for outgoing messages เลือก Unicode (UTF-8)
- ถ้าผู้รับยังเห็นตัวเพี้ยนหลังตั้งค่าแล้ว ให้เอาเครื่องหมายออกจาก Automatically select encoding for outgoing messages เพื่อบังคับใช้ UTF-8 ทุกฉบับ
- กด OK
ทดสอบโดยส่งอีเมลภาษาไทยถึงกล่องภายนอก เช่น Gmail แล้วเปิด header ดูว่า charset="utf-8" ถ้าผู้รับอ่านได้ถูก ถือว่าแก้แล้ว ค่า Encoding นี้เป็นค่าต่อเครื่องต่อผู้ใช้ ถ้ามีหลายเครื่อง ไอทีควรกำหนดผ่าน Group Policy ของ Office ให้เหมือนกันทั้งองค์กร