javamail的getContent()抛出UnsupportedEncodingException的解决方法

当使用 getContent() 时,文本主体部分(例如主类型是“text”的主体部分)返回 Unicode 字符串对象。通常,这些主体部分内部用某些非 Unicode 字符集保持文本数据。JavaMail(通过 "text/plain" DataContentHandler)试着将那些数据转换成 Unicode 字符串。基础 JDK 的字符集可用于做这种工作。如果 JDK 不支持特别的字符集,那么就引发 UnsupportedEncodingException。在这种情况下,可以使用 getInputStream() 方法来将内容作为字节流检索。下面是一个例子:

String s;
if (part.isMimeType("text/plain")) {
    try {
    s = part.getContent();
    } catch (UnsupportedEncodingException uex) {
    InputStream is = part.getInputStream();
    /*
     * Read the input stream into a byte array.
     * Choose a charset in some heuristic manner, use
     * that charset in the java.lang.String constructor
     * to convert the byte array into a String.
     */
    s = convert_to_string(is);
    } catch (Exception ex) {
    // Handle other exceptions appropriately
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容