My new project: Tact, a simple chat app.

What does J mean?

February 03, 2006

What is a J? A letter in the alphabet, yes, no, yes? Well sometimes it’s a bit more than that, or rather, something different.

Have you ever got emails like this and wondered what the HELL is that J?

I’ve been getting those for ages. And it became really annoying, so I thought let’s just figure it out. The truth, as often, is simpler than you’d expect.

These emails are sent from Outlook 2003 which says it’s using Word as it’s email editor. So let’s look at the source to see what’s going on there. Following is the e-mail body source with omissions.

This is a multi-part message in MIME format.

------=_NextPart_000_0001_01C6281A.6232E080
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

This email is trying to be funny :-)

Rgds,

Jaanus.

------=_NextPart_000_0001_01C6281A.6232E080
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
(whole pile of junk skipped)
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>This email is trying to be funny </span></font><font =
size=3D2
face=3DWingdings><span =
style=3D'font-size:10.0pt;font-family:Wingdings'>J</span></font><font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'><o:p></o:p></span></font></p=
>

So this is strange. Outlook is kind enough and provides multipart encoding, where the semantics of the J, which, if we run ahead, means the smiley face in Wingdings font, is correct. Yet Thunderbird (I’m not sure how other mailers behave) sees that there’s HTML content and tries to render it. But it’s apparently so weirdly encoded (what’s with the double encoding of = into =3D??? Why why why? – thanks Erki, of course it’s because I missed it’s quoted/printable. Duh. Well, it’s still bad HTML…) that it skips part of it and apparently can’t recognize the font span tag which would tell it to render the J/smiley character in Wingdings, so it just ignores it and so it’s J’s all over galore.

So, next time when I get such e-mail from Outlook, can I just reply “yeah, J right back at you J J J” and hope they’ll also figure it out like I did?

UPDATE: also see here – an interesting MS blog about tech topics.