Hello, Hotmail?
Why does Hotmail (and Yahoo! as well) serve up it's pages as ISO-8859-1? If I send an email to a Hotmail account, and my email is encoded as UTF-8, Hotmail is able to properly decode my email (I send it encoded using quoted-printable to fool any 7-bit MTAs on the way) but when it serves up the content, it comes back telling my browser that it's encoded as "iso-8859-1"1, which means anything outside of US-ASCII is garbage.
Why, oh, why, in this internationally-aware day and age, do they still use a non-Unicode encoding? I mean, if it's really such a hassle to convert their site to UTF-8, then the least they could do, surely, is convert my emails from UTF-8 to iso-8859-1! I'd much rather have unknown characters show up as ?'s than have to tell my users to "Click on the View menu, then on Encoding then on Unicode (UTF-8) to be able to view this email properly" - especially since it looks OK for everybody not using Hotmail (or Yahoo)
The only thing I can think of for people who want to use a web-based email client is to switch to Gmail, which serves up their pages as UTF-8 at least. Not only that, but if you send a gmail user an email encoded as something else (e.g. iso-8859-1) it'll automatically convert it to utf-8 before serving it up! Nice work, gmail!
1 Actually, I have a feeling it doesn't tell the browser any such thing, and the browser just uses the default defined by the standard...
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
3 comments, 2 trackbacks
In my previous post, “Hello, Hotmail?” I complained about the fact that Hotmail serves up it’s pages with no charset parameter which makes the browser default to ISO-8859-1, and also since it doesn’t even bother converting emails in other character set...
you would code
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, System.Text.Encoding.Default, "text/html");
and it reaches everyone in the expected manner (GMail, Hotmail, Thunderbird tested)
That is not always the case. That is only true if your default system code page is the same as what hotmail is using. It also assumes that the email you’re trying to send is in the same language as your computer.
For example, if my wife (who is Korean) wanted to send an email in Hangul from my computer (which is English), System.Text.Encoding.Default would be Windows-1251 – any Hangul would come out as ?????. Alternatively, if she does manage to compose a Hangul email successfully (setting your language to “Korean” in hotmail’s properties works) and sends it to me (with my English settings) I’m going to get garbage unless I change the encoding in the browser.
As I pointed out in my other post (http://www.codeka.com/blogs/index.php/dean/2006/01/25/hello_hotmail_1) the only real solution is for Hotmail to properly transcode all emails into a Unicode format (e.g. UTF-8) and explicitly return that. Which is what they seem to be doing in Hotmail v.NEXT. GMail already does it.

