Android4.1.2 Email发送邮件附件中文名乱码问题
16lz
2021-01-23
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)); }至此即可解决该问题。
更多相关文章
- Android studio3.0 - 解决创建Java工程运行Java的main()入口函数
- Android读取xxx.properties配置文件中文出现乱码解决方法
- 关于android UDP 客户端与delphi UDP服务端通讯中文乱码问题
- Eclipse项目导入AndroidStudio中文乱码问题
- Android http中文乱码问题
- Android http中文乱码问题 转
- Android Studio部署apk到手机后手机显示中文乱码解决方法
- android 音标乱码的一些问题
- Android第十八课 VS源码文件导入Android工程 中文乱码