ตอนนี้ mac ternimal แสดงภาษาไทยเป็น <ffffffff> แต่บางครั้งต้องใช้ภาษาไทย หรือ copy code มาจากที่อื่นที่มันติด comment ภาษาไทยมาด้วย ผลคือคำสั่งพัง สาเหตุส่วนใหญ่มาจากการที่ Terminal ไม่ได้ถูกตั้งค่าให้ใช้ Unicode ทำให้มันพยายามแสดงรหัสฐานสิบหกแทนตัวอักษรไทย
ตั้งค่า Encoding เป็น UTF-8
- ไปที่แถบเมนู Terminal > Settings… ( หรือ Preferences ) คลิกที่แท็บ Profiles และเลือกโปรไฟล์ที่คุณใช้งานอยู่ ( แถบด้านซ้าย )คลิกที่แท็บย่อย Advanced ทางด้านขวาในส่วนของ International
- ที่หัวข้อ Text encoding: ให้เลือกเป็น Unicode (UTF-8)
- ติ๊กถูกที่ช่อง Set locale environment variables on startup เพื่อให้ระบบตั้งค่าภาษาโดยอัตโนมัติ
เปลี่ยนฟอนต์ให้รองรับภาษาไทย
หาก Encoding ถูกต้องแล้วแต่ยังแสดงผลเพี้ยน อาจเป็นเพราะฟอนต์ที่ใช้อยู่ไม่มีตัวอักษรไทย
- ในหน้า Settings > Profiles > แท็บ Text
- ในส่วนของ Font: คลิกปุ่ม Change
- เลือกฟอนต์ที่รองรับภาษาไทย เช่น Ayuthaya, Thonburi, Krungthep หรือฟอนต์มาตรฐานอย่าง Menlo / Monaco ( ซึ่งปกติจะรองรับภาษาไทยพื้นฐานได้ )
แก้ปัญหาแสดงผล ( Escape non-ASCII )
- ในหน้า Settings > Profiles > แท็บ Advanced
- มองหาหัวข้อ Input
- เอาเครื่องหมายถูกออก ที่ช่อง “Escape non-ASCII input with Control-V”
- ตรวจสอบในหัวข้อ International ด้านล่างด้วยว่า Text encoding เป็น Unicode (UTF-8) และติ๊กถูกที่ Set locale environment variables on startup แล้วหรือยัง
จริง ๆ Escape non-ASCII input with Control-V มันเป็นการป้องกันพวกที่ใช้ ai หรือ copy จากเว็บมาโดยที่ไม่รู้ว่าเค้าใส่อักษรพิเศษไว้ ทำให้เครื่องเราไม่ปลอดภัยได้ แต่ถ้าจะใช้ภาษาไทยจริง ๆ ใช้วิธีอ่านคำสั่งก่อนทำอะไรดีกว่า
คำสั่งพิเศษสำหรับ zsh ใน macOS
- เพื่อให้ zsh รองรับการรวมสระและวรรณยุกต์ไทย ( Combining Characters ) ได้ดีขึ้น ให้พิมพ์คำสั่งนี้
setopt combiningchars - ปิดการ “มองภาษาไทยเป็นไฟล์” ( zsh: no matches found )
unsetopt nomatch
การทดสอบ
จริง ๆ ไม่ต้องอธิบายก็ได้ว่าเทสยังไง แต่จะบอกว่าคุณต้อง ปิด termina แล้วเปิด termina ใหม่ก่อน จากนั้นลองใช้ภาษาไทยดู
อ่านเพิ่มเติม
