Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.7.2
-
None
-
None
Description
Would it be possible to add a feature that would allow for specifying a fallback character set to use when the character set in a 'Content-Type' header is not recognized by Java? In the old 0.6.2 version, that we used before, the character set 'ISO-8859-1' was used as a fallback but in the 0.7.2 version an UnsupportedEncodingException is thrown when the parser encounters an unknown character set in a Content-Type header.
Here is the relevant part of the exception stack trace:
Caused by: java.io.UnsupportedEncodingException: x-user-defined
at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:52)
at java.io.InputStreamReader.<init>(InputStreamReader.java:83)
at org.apache.james.mime4j.message.BasicTextBody.getReader(BasicTextBody.java:49)
We receive, parse and archive a vast number of confidential e-mail messages (for which we use Mime4J) and every now and then we get an e-mail message that contains a non-standard character encoding name (in this case 'x-user-defined'). With the old (0.6) Mime4J version we were still able to parse and read most of those e-mail messages because of the fallback character set in the parser.
I can unfortunately not post the entire message here but the content-type header that caused the above exception looks like this:
Content-Type: text/plain; charset="x-user-defined"