[转]EMOS收取QQ邮箱发来的邮件中文显示乱码

收取qq发送来的邮件中文为乱码,在 编码 手动选择GB2312没问题。截取部分邮件原结构发现qq的编码为gb18030,extmail会自动判别编码格式来显示。

$VAR1 = {
   ‘body’ => {
      ‘list’ => [
         {
         'pos_end' => '1596',
         'pos_start' => 1490,
         'phead' => {
             'Content-Type' => 'text/plain',
             'charset' => 'gb18030',
             'Content-Transfer-Encoding' => 'base64'
            },
         'idflag' => 'alternative-0',
         'size' => '106'
         },
         {
         'pos_end' => '1757',
         'pos_start' => 1640,
         'phead' => {
             'Content-Type' => 'text/html',
             'charset' => 'gb18030',
             'Content-Transfer-Encoding' => 'base64'

EMOS官网解释:

关于GB18030由thunderbird或某些客户端软件发出的中文邮件编码是GB18030,部分内容甚至全部乱码。经过仔细检查发现是Perl 目前版本(5.8.8或以下)缺少了GB18030码表,因此增加了Encode::HanExtra码表模块的支持,解决了此问题。

解决方法如下:

wget –c http://search.cpan.org/CPAN/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz
tar zxvf Encode-HanExtra-0.23.tar.gz
cd Encode-HanExtra-0.23
perl Makefile.PL
make install
ok

直至完成,刷新页面即可。

另一种方法就是在用QQ邮箱写信时,设置编码为Unicode

勾选始终使用Unicode编码发信。后面也给出了解释。

PS:

EMOS1.5中perl版本就是5.8.8,在新版本的emos1.6中版本为5.10.1。

猜你喜欢

转载自talentvictor.iteye.com/blog/2042139
今日推荐