ExtMail 列表邮件名乱码

2007-10-11 10:24  |  分类:程序设计

用 php 程序通过 smtp 发邮件,发现使用 ExtMail 列表中文邮件时邮件名是乱码,而且邮件被 Amavisd-new 打上了垃圾邮件的标签,且在邮件头中有以下提示:
X-Amavis-Alert: BAD HEADER Non-encoded 8-bit data
而在其它邮件系统中显示是正常的,在 Foxmail 中也是正常的。
对比接收到的正常邮件,发现邮件名是 base64 编码了的,于是在发送邮件时进行编码:
$subject = "=?GB2312?B?".base64_encode($subject)."?=";
这时候邮件不被标记为垃圾邮件了,但是邮件名列表时还是乱码。仔细对比后发现,是程序中 Subject: 后少了个空格。
看来,程序书写不够仔细;ExtMail 提取非规范书写的 Subject 内容时有点问题。

iconv 解决 MySQL 乱码问题

2006-07-27 17:03  |  分类:数据库

从 Windows 下的 MySQL 导出的 sql 文件再导入到 Linux 下的 MySQL ,所有字段的中文内容都变成了乱码。
 
$ file -i sql1.sql
sql1.sql: text/plain; charset=utf-8
 
发现 sql 文件的编码是 utf-8 ,这与 Linux 下 MySQL 数据库默认的 gbk 编码不相符。
 
$ iconv -f utf-8 -t gbk -o sql2.sql sql1.sql
生成编码为 gbk 的 sql 文件再导入就可以了。
 
不过,发现个问题:
$ file -i sql2.sql
sql2.sql: text/plain; charset=unknown
 
看来,file 不支持 gbk 编码。