Friday, December 28, 2007

Mail.app encoding

ช่วงนี้ที่บริษัทใช้ environment ผสมกัน ระหว่าง mac, windows, linux
ก็เลยเจอปัญหาพวก encoding กันบ่อยๆ

ตัว source code ไม่มีปัญหาแล้ว เพราะหลังๆผมบังคับให้ไปใช้ utf-8 กันหมดแล้ว

ตัวที่ทำให้ปวดหัวมากหน่อยก็คือ Mail
เนื่องจากผมใช้ Mail client เป็น Mail.app ของ apple
ทำให้เวลา forward, reply กันไปมา แล้วเกิดปัญหา encoding เพี้ยนขึ้น

ปัญหาหลักๆ ตัวหนึ่งเกิดที่ Mail.app
โดยปกติ mail ที่ส่งมา มันจะมี encoding แปะมาทั้งส่วน body และส่วน subject

Subject: =?windows-874?B?UkU6ILe0ys26wNLJ0uS3wg==?=
Content-Type: text/plain;
charset="windows-874"

แต่เวลาผม reply ต่อออกไป, เจ้า Mail.app ดัน set encoding เป็นแบบนี้แทน

Content-Type: text/plain;
charset=CP874;
delsp=yes;
format=flowed
Subject: =?UTF-8?B?RndkOiDguYDguKHguKXguYzguInguJrguLHguJrguJfguLXguYg=?=
=?UTF-8?B?4Liq4Lit4LiH?=

ตัว encoding ของ subject กับ body ที่ไม่ตรงกัน ถือเป็นจุดตั้งต้นของความเพี้ยน
(ยังไม่ตามต่อไป ว่า mail client ตัวไหนไปทำให้เพี้ยน แต่คาดว่าน่าจะเป็น outlook express)

ตอนนี้ผมก็เลยแก้ไข โดยการประพฤติตนเป็นพนักงานที่ดี โดยการ set default charset
ของผมให้เหมือนประชากรส่วนใหญ่ไปก่อน (ค่านี้ไม่มีหน้าจอ UI ให้ set ต้อง command line อย่างเดียว)

$ defaults write com.apple.mail NSPreferredMailCharset "CP874"

Related link from Roti

No comments: