Android4.1.2 Email发送邮件附件中文名乱码问题


http://blog.sina.com.cn/s/blog_3e4774e301018cu7.html
在Android下使用自带Email客户端在发送中文名附件时,不管是在PC机上还是在Android设备上,都会显示为乱码,在网上查了些资料,发现跟发送时传送的文件名参数有关系,具体只需要修改packages/apps/Email/emailcommon/src/com/android/emailcommon/internet/Rfc822Output.java文件,将writeOneAttachment函数中的如下内容:
        writeHeader(writer, "Content-Type",
                attachment.mMimeType + ";\n name=\"" + attachment.mFileName + "\"");
        writeHeader(writer, "Content-Transfer-Encoding", "base64");
        // Most attachments (real files) will send Content-Disposition.  The suppression option
        // is used when sending calendar invites.
        if ((attachment.mFlags & Attachment.FLAG_ICS_ALTERNATIVE_PART) == 0) {
            writeHeader(writer, "Content-Disposition",
                    "attachment;"
                    + "\n filename=\"" + attachment.mFileName + "\";"
                    + "\n size=" + Long.toString(attachment.mSize));
        }
          修改为:
         writeHeader(writer, "Content-Type",
                 attachment.mMimeType + ";\n name=\"" +
                 MimeUtility.foldAndEncode2(attachment.mFileName,"Content-Type".length() + 2)
                 + "\"");
         writeHeader(writer, "Content-Transfer-Encoding", "base64");
         // Most attachments (real files) will send Content-Disposition.  The suppression option
         // is used when sending calendar invites.
         if ((attachment.mFlags & Attachment.FLAG_ICS_ALTERNATIVE_PART) == 0) {
             writeHeader(writer, "Content-Disposition",
                     "attachment;"
                     + "\n filename=\"" +
                     MimeUtility.foldAndEncode2(attachment.mFileName,"Content-Disposition".length()
                             + 2)
                     + "\";"
                     + "\n size=" + Long.toString(attachment.mSize));
         }
          至此即可解决该问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值