Steve Haslam (araqnid) wrote,
Steve Haslam

  • Mood:
  • Music:


JavaMail's character set support is janky. Is this just because it predates the whole InputStream/OutputStream vs Reader/Writer rationalisation? If you blithely write:

message.setContent("this is a string, it cost £20 to write", "text/plain");

It may emit QP content like so:

Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

this is a string, it cost =A320 to write

which is broken, argh. The "UTF-8" in the charset is just taken from the system property mail.mime.charset, or file.encoding, but the content has been encoded as Latin-1. In order to fix, I had to write:

message.setContent(new String(bodyString.getBytes("UTF-8"), "ISO-8859-1"), "text/plain");

which is just ridiculous. Between this and the pre-Collections API and other nastiness, I'm seriously considering the possibility of writing my own mail-encoding routines, although not really happy about it. Last time I tried to use GNUmail, it had other bugs, which was also frustrating.
Tags: geek

  • git fsck the hard way

    "git fsck" the hard way: rm -f raw-* && perl -MCompress::Zlib=uncompress -e 'undef $/; for my $infile (@ARGV) { open(INPUT, $infile) or die…

  • MySQL suckage

    mysql> select t1_id, value, length(value), substr(value, 1, 1), length(substr(value, 1, 1)) from t1;…

  • eclipse

    Finally got round to installing Eclipse 3.2 and some of the Callisto J2EE/Web plugins. I'm impressed-- it's much improved over the previous…

  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.