How to stop smiley in Thunderbird showing up as a J?

In Thunderbird 3, when I receive a message with a smiley using the "Original HTML" or "Simplified HTML" viewing option, it appears like this:

Non smiley

That is … J. However, if I view the message as "Plain text" I get the smiley

OK smiley

The actual message in the "view source" looks like this:

Content-Type: multipart/alternative;
    boundary="_000_7EE28"
MIME-Version: 1.0

--_000_7EE28
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Se        r=F3n... :)

That =F3 is an "ó" (I've censored the message for the easily offended Spanish readers out there). Maybe it is something to do with the encoding? I'm on Linux and use LANG=en_US.UTF-8.

Anyone know what has gone wrong here and how to fix it?

EDIT: I've tried switching encoding to ISO-8859-1 and forcing this, but no joy.

enter image description here

After further investigation, it seems that the Wingdings thing is the issue. The actual HTML has the following snippet where the smiley should be:

<span style='font-= size:11.0pt; font-family:Wingdings'>J</span>

... since this is a multipart text/HTML message and I had only added the plaintext part above.


Solution 1:

This Lifehacker article has some explanation on what's going on. What it basically says is that when the sender types in a ":)" character, their Outlook automatically converts it into a smiley rendered in the Wingdings font. As far as I know, this happens when Outlook uses Word to edit email messages.

At the moment, I'm on a box with Outlook installed, not Thunderbird. Is it possible for you to change the encoding to ISO-8859-1 to see what happens?

Solution 2:

Here's my solution. I wrote a Thunderbird Add-on that replaces J, L, è, à, and · with the correct UTF-8 emoticon, arrow or whatever.

Before:

enter image description here

After:

enter image description here

Credit to Isxek for getting me on the right track though!

Solution 3:

A receiver-side solution to this problem would be to install the SWEC (Symbola-based Wingdings Emoticons Compatibility) font: https://drive.google.com/open?id=0BwDrnPQfa-aMOEx0bEZCQUNrSGs

It provides basic compatibility with Wingdings emoticons. (In Wingdings, "J" represents a smile, "K" represents a lack of expression, and "L" represents a frown.) Background: certain versions of Microsoft e-mail clients still in use change user-typed expressions such as ":)", ":|", and ":(" into "J", "K", and "L", respectively, and then specify Wingdings as the font family; recipients on systems which do not include a Wingdings-compatible font are not able to see the intended emoticons, which can cause confusion.