Josh (the blog)

I’ve delivered simple, clear and easy-to-use services for 20 years, for startups, scaleups and government. I write about the nerdy bits here.


@joahua

The Single IE Linebreak Through [optionally transparent] Proxy Character Encoding Bug

It’s new, so far as I’m aware, and I can’t even build a decent test case for it. In one instance alone, if there’s a blank line between two elements (i.e. just for readability, doesn’t need to be like that), then certain versions of IE — and only when their traffic is being proxied through certain transparent/non-transparent servers — will display a blanking/”unknown” character.

At first it was thought this was just because of a dud character in a file, but then we tried using PHP to echo \n\r, \n, and \r in the place of a manually entered return: all of which resulted in the bug persisting. The only fix I’ve got is to use an HTML comment between lines

</element><!--
--><another element='element'>

Like that. Anything else, and we get a blanking character in there. Bizarre!

It doesn’t occur anywhere else on the site in question, and I’m not going to waste hours trying to build another un-branded test case which may or may not work! The problem affects IE only (though we didn’t do version testing), and only when traffic is going through (some) proxy servers. And only that one character.

It’s not an encoding problem per-se, though is obviously related to that in some sense. This is still internal-only, and it’s not being dished up with proper content-types defined in HTTP headers (because I’m still liable to change my mind as to how that should be done, and I’m not calling it until the site is about to launch/what is/isn’t required in terms of content-type–affected things is abundantly clear!), but seeing as it only has an impact when using through a proxy it’s pretty obvious it’s not JUST here. Shrug. I reluctantly deleted the linebreak and the box went away.