非英语国家阅读电子邮件,最讨厌的莫过于乱码。在工作流邮件中,以前都用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,告别乱码。