`
tempsitegoogle
  • 浏览: 885601 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
Android的邮件编码网上的资料很少,但大体与JavaMail相似,在参考了网上关于JavaMail的资料,经过多次尝试,最终解决附件中文名乱码问题。
邮件附件名的编码与邮件名的编码可以如出一辙。因为多功能Internet邮件扩充服务协议,即MIME(Multipurpose Internet Mail Extensions)对附件名的规定是US-ASCII(应该也是ASCII),因此该乱码bug的出现与Java和Android无关,是MIME的不规范。
邮件的标题,用了一种更简短的格式来标注“字符编码”和“传输编码”。比如,标题内容为 "中",则在邮件源代码中表示为: " =?GB2312?B?1tA=?= ",其中第一个

“=?”与“?”中间的部分指定了字符编码,在这个例子中指定的是 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的转码,乱码也就不再出现。

分享到:
评论

相关推荐

    java android zip解压缩(解决压缩中文乱码问题)

    然而,当压缩文件包含中文字符时,解压缩过程中可能会遇到乱码问题。这是因为编码格式不匹配或者处理方式不当导致的。本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 ...

    彻底解决android读取中文txt的乱码(自动判断文档类型并转码

    在Android平台上,开发人员经常遇到一个棘手的问题,那就是如何正确地读取包含中文字符的TXT文件,因为不恰当的处理往往会导致乱码。本文将深入探讨如何彻底解决这一问题,包括自动判断文档编码类型以及进行转码操作...

    KETTLE 发送邮件乱码修正

    我当前调试的是kettle 5.4.0.1版本,修复job中发送邮件时候中文乱码问题: 替换 data-integration\lib\kettle-engine-5.4.0.1-130.jar 这个jar包下 data-integration\lib\kettle-engine-5.4.0.1-130.jar\org\...

    fckeditor(java版-解决中文附件名称乱码问题)

    通过以上知识点的深入理解和应用,可以有效地解决“fckeditor(java版-解决中文附件名称乱码问题)”这个问题,确保用户能够正常上传并保存带有中文名称的附件,从而提高产品在中文环境下的可用性和用户体验。

    Android客户端发送请求中文乱码问题完美解决

    Android客户端发送请求中文乱码问题完美解决 Android客户端发送请求中文乱码问题是指在Android客户端向服务器端提交请求时出现的中文乱码问题,这是由于在HTTP请求中,中文字符被编码为乱码字符所致。为了解决这个...

    Android读取中文文件乱码解决方法

    本文将详细介绍如何解决Android平台上的中文乱码问题,并提供一个具体的示例代码。 #### 二、中文乱码的原因分析 中文乱码通常是由于字符编码不匹配造成的。常见的字符编码包括UTF-8、GBK、Unicode等。在不同的...

    Android读取本地json文件的方法(解决显示乱码问题)

    以下将详细讲解如何在Android中读取本地JSON文件,并解决可能出现的显示乱码问题。 1. **读取本地JSON文件(但显示汉字乱码)** 这个问题通常发生在读取文件时没有正确指定字符编码。在Android中,我们通常使用`...

    解决linux下oracle中文乱码问题,添加中文支持

    解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...

    ApacheJMeter_http.jar解决jmeter5.4.3版本上传附件中文名乱码问题

    使用jmeter5.4.3版本,通过修改PostWriter....ApacheJMeter_http.jar下载后,放到apache-jmeter-5.4.3\lib\ext路径下,替换原来的jar包,然后重启jmeter,PS:注意在http请求体中,Content encoding需要设置成UTF-8。

    Opensmtp1.11.0解决附件乱码问题

    本文将深入探讨如何解决OpenSMTP 1.11.0版本中关于附件乱码的问题,以及与之相关的C#编程、SMTP协议和邮件编码知识。 首先,我们需要理解SMTP(Simple Mail Transfer Protocol)协议,它是互联网上用于发送电子邮件...

    文件下载,二进制流转换成文件 解决中文名乱码的问题

    这是解决中文名乱码的关键步骤之一。 #### 设置响应长度 ```csharp Response.AddHeader("Content-Length", buffer.Length.ToString()); ``` - **`Content-Length`**: 指明响应体的大小,单位是字节。这有助于...

    android扫描二维码中文乱码

    总之,解决"android扫描二维码中文乱码"的问题需要深入理解编码原理,以及如何在ZXing库中实现对GBK编码的支持。通过修改源代码或在应用层面进行处理,我们可以确保中文字符在扫描二维码时能被正确显示。

    android客户端上传数据中文乱码3中解决方案

    android客户端上传数据中文乱码3中解决方案 一种HttpPost两种HTTPURLCONNECTION

    android二维码开发 ZXing(中文乱码已处理)

    本项目针对ZXing进行了优化,特别是解决了中文乱码的问题,使得开发者在处理包含中文字符的二维码时能够更加顺利。以下是关于ZXing二维码开发以及解决中文乱码问题的详细知识点: 1. **ZXing框架概述**: ZXing是...

    Android乱码问题总结

    在Android开发过程中,乱码问题是一个常见的困扰,尤其是在处理URL、文件名或用户输入时。本文将深入探讨Android系统中的编码问题,以及如何有效解决这些问题。 首先,我们要理解字符编码的基本概念。在计算机世界...

    flex 文件上传 预览下载 及中文名乱码解决问题

    解决中文名乱码问题的关键在于确保数据传输的全过程都使用相同的字符编码,包括客户端的发送、服务器的接收以及响应。在Flex端,可以使用`flash.net.URLRequestHeader`设置请求头的`charset`属性,而在服务器端,如...

    解决android读取中文乱码 自动判断文档类型并转码

    Android 读取中文 txt 文件时经常会出现乱码问题,主要是因为文档的编码格式不确定,从而导致读取时出现乱码。为了解决这个问题,我们可以通过自动判断文档类型并转码来解决乱码问题。 在 Java 中,我们可以使用 ...

    vs自带数据库sql server的中文插入乱码问题、查找当前数据库名

    解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...

    android12-修改U盘名称显示乱码.patch

    android12-修改U盘名称显示乱码.patch

Global site tag (gtag.js) - Google Analytics