非英语国家阅读电子邮件,最讨厌的莫过于乱码。在工作流邮件中,以前都用Outlook,它对语言编码的兼容性是最好的,所以也没发现过什么问题,最近将客户端迁移到Gmail,才发现工作流邮件的编码有点问题。
直接查看邮件源码。标题:
Subject: =?WINDOWS-936?B?(……省略……)==?=
正文编码:
Content-Type: text/plain; charset=WINDOWS-936
Content-Transfer-Encoding: quoted-printable
Content-Language: en
查询工作流默认语言及编码配置:
1 SELECT wl.nls_codeset 2 FROM wf_languages wl 3 WHERE wl.code = 'ZHS'; NLS_CODESET ------------------------------ ZHS16CGB231280
在这里,WINDOWS-936 是Windows中的简体中文的字符集,工作流邮件的字符集,是默认为我的邮件客户端应该是运行在Windows上吗?不知道Linux中的Mutt能否正确显示中文……不管它,既然是charset的问题,总是能配置的。
进入Workflow Manager,选择Workflow Notification Mailer并编辑,进入高级编辑选项,一路next到第4步:

选中Rest NLS,意思就是工作流通知邮件根据收件人首选项设置的字符集进行编码。修改完毕后发送测试邮件,看邮件代码:
标题:
Subject: =?UTF-8?B?(……省略……)?=
邮件正文:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en
OK,告别乱码。
