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
    }
}

你可能感兴趣的:(javamail的getContent()抛出UnsupportedEncodingException的解决方法)