Encoding: แก้อีเมลภาษาไทยใน Outlook อ่านไม่ออกเป็นตัวต่างดาว

Encoding ไม่ตรงทำให้อีเมลภาษาไทยใน Outlook เป็นตัวต่างดาว เช่น ภหรือ เธ แก้ด้วยคำสั่ง Encoding เลือก UTF-8 หรือ Thai (Windows) และตั้งขาออกเป็น UTF-8

โดย ทีมงาน THAI DATA CLOUD อ่าน 12 นาที

แชร์FacebookXLINELinkedIn
Encoding — Encoding: แก้อีเมลภาษาไทยใน Outlook อ่านไม่ออกเป็นตัวต่างดาว
Encoding: แก้อีเมลภาษาไทยใน Outlook อ่านไม่ออกเป็นตัวต่างดาว

คำตอบสั้น ๆ: 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

ตารางจับคู่รูปแบบตัวอักษรเพี้ยนในอีเมลภาษาไทยกับสาเหตุและ Encoding ที่ต้องเลือกใน Outlook ทั้ง UTF-8 และ Thai (Windows)
รูปแบบของตัวต่างดาวบอกได้ว่าข้อความเดิมเป็น Encoding อะไร เลือกตามช่องขวาสุด

ขั้นตอนที่ 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

  1. ดับเบิลคลิกอีเมลให้เปิดเป็นหน้าต่างแยก คำสั่ง Encoding ไม่มีใน Reading Pane
  2. ที่แท็บ Message ในกลุ่ม Move คลิก Actions แล้วเลือก Other Actions > Encoding ถ้าหาไม่เจอเพราะใช้ริบบอนแบบย่อ ให้พิมพ์ Encoding ในช่อง Search ด้านบนของหน้าต่าง
  3. เลือก Unicode (UTF-8) ถ้าเห็นอาการแบบ ภหรือ เธ หรือเลือก Thai (Windows) ถ้าเห็นอาการแบบ ÊÇÑ (ถ้าไม่เห็นในรายการแรก ให้ดูใน More)

ถ้าภาษาไทยกลับมาอ่านได้ ถือว่าแก้แล้วสำหรับฉบับนั้น การเปลี่ยน Encoding เปลี่ยนแค่การแสดงผล ไม่ได้แก้ข้อมูลในอีเมล ถ้าต้องอ่านบ่อยจากระบบเดียวกัน ให้แก้ที่ต้นทางตามขั้นตอนที่ 4 อีกทางหนึ่งคือคำสั่ง View in Browser ในเมนู Actions เดียวกัน ซึ่งเปิดอีเมลในเบราว์เซอร์ที่มักเดา Encoding ได้ดีกว่า

ขั้นตอนที่ 3: ตั้ง Encoding ขาออกเป็น UTF-8

ขั้นนี้กันไม่ให้ผู้รับของคุณเจอตัวต่างดาวหรือ ??? ใช้ได้กับทุกชนิดบัญชี ทั้ง Microsoft 365 และอีเมลบริษัทแบบ IMAP/POP

  1. ไปที่ File > Options > Advanced เลื่อนลงถึง International options
  2. ที่ Preferred encoding for outgoing messages เลือก Unicode (UTF-8)
  3. ถ้าผู้รับยังเห็นตัวเพี้ยนหลังตั้งค่าแล้ว ให้เอาเครื่องหมายออกจาก Automatically select encoding for outgoing messages เพื่อบังคับใช้ UTF-8 ทุกฉบับ
  4. กด OK

ทดสอบโดยส่งอีเมลภาษาไทยถึงกล่องภายนอก เช่น Gmail แล้วเปิด header ดูว่า charset="utf-8" ถ้าผู้รับอ่านได้ถูก ถือว่าแก้แล้ว ค่า Encoding นี้เป็นค่าต่อเครื่องต่อผู้ใช้ ถ้ามีหลายเครื่อง ไอทีควรกำหนดผ่าน Group Policy ของ Office ให้เหมือนกันทั้งองค์กร

หน้าจอจำลอง Outlook Options หน้า Advanced ส่วน International options ตั้ง Preferred encoding for outgoing messages เป็น Unicode (UTF-8)
UTF-8 แสดงภาษาไทยได้ถูกในโปรแกรมอีเมลแทบทุกตัว เป็นค่าที่ควรใช้ส่งออก (ภาพจำลอง)

ขั้นตอนที่ 4: แก้หัวเรื่องและอีเมลจากระบบอัตโนมัติที่ต้นทาง

อีเมลจากระบบอัตโนมัติที่เพี้ยนทุกฉบับ แก้ที่ Outlook ทีละฉบับไม่คุ้ม ให้ส่งข้อมูลนี้ให้ผู้ดูแลระบบหรือผู้ขายโปรแกรม

  • เนื้อความต้องเข้ารหัสเป็น UTF-8 และประกาศใน header ว่า Content-Type: text/html; charset="utf-8" (หรือ text/plain) ให้ตรงกับข้อมูลจริง
  • หัวเรื่อง ชื่อผู้ส่ง และชื่อไฟล์แนบภาษาไทยต้องเข้ารหัสแบบ encoded-word ตาม RFC 2047 เช่น Subject: =?UTF-8?B?4LmD4Lia4LmB4LiI4LmJ4LiH4Lir4LiZ4Li14LmJ?= ซึ่งถอดได้เป็นคำว่า ใบแจ้งหนี้
  • เครื่องสแกนหรือเครื่องพิมพ์ที่ส่งหัวเรื่องภาษาไทยเพี้ยน ให้ตรวจเฟิร์มแวร์ล่าสุดของผู้ผลิต หรือตั้งหัวเรื่องและชื่อไฟล์เป็นภาษาอังกฤษ

ให้ผู้ดูแลส่งอีเมลทดสอบมาหาคุณหลังแก้ แล้วเปิดใน Outlook โดยไม่ต้องเปลี่ยน Encoding ถ้าทั้งหัวเรื่องและเนื้อความอ่านได้ ถือว่าแก้ที่ต้นทางสำเร็จ ถ้าต้องการตรวจว่าระบบเข้ารหัสหัวเรื่องถูก ให้นำค่า base64 ใน header มาถอดด้วย PowerShell ตามภาพด้านล่าง

ผลคำสั่ง Windows PowerShell แสดงข้อความ UTF-8 ที่ถูกอ่านด้วย Encoding ผิดกลายเป็นตัวต่างดาว และถอดหัวเรื่องแบบ base64 กลับเป็นภาษาไทย
ถ้าถอดหัวเรื่องจาก header ได้ภาษาไทยถูก แปลว่าผู้ส่งเข้ารหัสถูก ปัญหาอยู่ที่ฝั่งแสดงผล

ขั้นตอนที่ 5: แก้ตัวอักษรไทยเป็นสี่เหลี่ยม

ถ้าเห็นสี่เหลี่ยมว่างแทนตัวอักษรไทย ปัญหาคือฟอนต์ ไม่ใช่ Encoding ให้ตรวจสองจุด

  • ฟอนต์ที่ตั้งไว้สำหรับอ่านและเขียนใน File > Options > Mail > Stationery and Fonts ต้องมีอักษรไทย เช่น Tahoma หรือ Leelawadee UI ถ้าตั้งเป็นฟอนต์ที่มีแต่อักษรละติน ให้เปลี่ยน ดูวิธีปรับฟอนต์ในคู่มือ Font Size
  • อีเมลที่ระบุฟอนต์ไทยรุ่นเก่า เช่น Angsana New หรือ Cordia New แต่เครื่องไม่มี ให้เพิ่มฟีเจอร์เสริมของ Windows ชื่อ Thai Supplemental Fonts ที่ Settings > System > Optional features (Windows 11 รุ่นก่อน 24H2 อยู่ที่ Settings > Apps > Optional features)

เปิดอีเมลเดิมอีกครั้ง ถ้าตัวอักษรไทยแสดงครบ ถือว่าแก้แล้ว

ขั้นตอนที่ 6: ส่งออกแล้วกลายเป็น ??? ทั้งที่ตั้ง UTF-8

Microsoft ยืนยันปัญหาใน classic Outlook Version 2601 ที่แทนตัวอักษรนอกชุด ASCII ในอีเมลขาออกด้วยเครื่องหมายคำถาม และแก้แล้วใน build 19628.20252 ของ Version 2601, 19725.20164 ของ Version 2602 และ 19822.20032 ของ Version 2603 ถ้าเครื่องยังเป็น build ที่มีปัญหา ให้อัปเดตที่ File > Office Account > Update Options > Update Now ระหว่างรออัปเดต Microsoft แนะนำให้ส่งจาก Outlook on the web หรือ new Outlook หรือย้อนเวอร์ชันตามคู่มือ Office Rollback รายละเอียดอยู่ในหน้า Classic Outlook replaces accented and extended characters with question marks ส่งอีเมลทดสอบหลังอัปเดต ถ้าผู้รับอ่านภาษาไทยได้ ถือว่าแก้แล้ว

Encoding ใน new Outlook และ Outlook on the web

new Outlook for Windows และ Outlook on the web ไม่มีคำสั่งเปลี่ยน Encoding ของอีเมลที่ได้รับแบบ classic Outlook และไม่มีหน้า International options ถ้าอีเมลจากระบบหนึ่งเพี้ยนใน new Outlook ทางที่ใช้ได้จริงคือแก้ที่ต้นทางตามขั้นตอนที่ 4 ระหว่างนั้นถ้าเครื่องยังมี classic Outlook ให้เปิดอีเมลฉบับนั้นใน classic Outlook แล้วใช้ขั้นตอนที่ 2

ปัญหาที่พบบ่อยเกี่ยวกับ Encoding ภาษาไทย

ทำไมอีเมลจากระบบ ERP เพี้ยน แต่อีเมลจากเพื่อนร่วมงานอ่านได้ปกติ?

โปรแกรมอีเมลทั่วไปอย่าง Outlook และ Gmail ระบุ Encoding ใน header ให้อัตโนมัติ แต่ระบบอัตโนมัติรุ่นเก่ามักส่งข้อความภาษาไทยโดยไม่ระบุหรือระบุผิด Outlook จึงเดาผิด ต้องให้ผู้ดูแลระบบนั้นแก้ตามขั้นตอนที่ 4

เปลี่ยน Encoding แล้วข้อมูลในอีเมลจะเสียไหม?

ไม่เสีย คำสั่ง Encoding เปลี่ยนแค่วิธีแสดงผลของฉบับที่เปิดอยู่ ถ้าเลือกผิด ให้เลือกแบบอื่นใหม่ได้ ข้อมูลต้นฉบับยังเหมือนเดิม

ควรตั้ง Encoding ขาออกเป็น Thai (Windows) หรือ UTF-8?

UTF-8 เพราะรองรับภาษาไทยและภาษาอื่นในฉบับเดียวกัน และโปรแกรมอีเมลแทบทุกตัวอ่านได้ Thai (Windows) ใช้ได้กับโปรแกรมที่รู้จัก windows-874 เท่านั้น ระบบนอกประเทศบางระบบไม่รู้จัก

ผู้รับเห็น ??? แก้ที่ฝั่งผู้รับได้ไหม?

ไม่ได้ เครื่องหมายคำถามแปลว่าตัวอักษรถูกแทนที่ไปแล้วตั้งแต่ตอนส่ง ข้อมูลภาษาไทยไม่ได้อยู่ในอีเมล ผู้ส่งต้องตั้ง UTF-8 ตามขั้นตอนที่ 3 หรืออัปเดตตามขั้นตอนที่ 6 แล้วส่งใหม่

ถ้าระบบในองค์กรส่งอีเมลภาษาไทยเพี้ยนหลายระบบ หรือต้องการตรวจการตั้งค่าเซิร์ฟเวอร์ส่งอีเมล ติดต่อทีมงาน THAI DATA CLOUD ได้ และดูบริการ Cloud Mail Server สำหรับองค์กรที่ต้องการระบบอีเมลบริษัทพร้อมทีมดูแล

อ่านเพิ่มเติมเกี่ยวกับ Encoding

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน