首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android邮件附件中文名乱码有关问题草解

2012-07-03 
Android邮件附件中文名乱码问题草解“?”与“?”中间的部分指定了字符编码,在这个例子中指定的是 GB2312。“?”

Android邮件附件中文名乱码问题草解

“=?”与“?”中间的部分指定了字符编码,在这个例子中指定的是 GB2312。“?”与“?”中间的“B”代表 Base64。如果是“Q”则代表 Quoted-Printable。最后“?”与“?=”之间的部分,就是经过 GB2312 转化成字节串,再经过Base64 转化后的标题内容。如果“传输编码”改为 Quoted-Printable,同样,如果标题内容为 "中":"=?GB2312?Q?=D6=D0?= " 。
?根据上面解释,那么解决这个bug已经没有问题了。在我们找到读取附件名的地方,如mFileName,位于Email/provider/EmailContent.java,首先对其进行base64Encode编

码:String name = com.android.email.Utility.base64Encode(mFileName),然后强制给name添加编码头和尾:String name2 = "=?utf8?B?" + name + "?="。这样接受邮件的客户端在检测到"=?utf8?B?"的时候,会对字符串进行base64和utf-8的转码,乱码也就不再出现。

热点排行