Workarounds for some known bugs in browsers.
Preventing QUERY_STRING from getting corrupted because of &entity key names
In a URL which contains a query string, if the string has multiple parts separated by ampersands and it contains a key named "reg", for example http://my.site.com/foo.pl?foo=bar®=foobar
, then some browsers will interpret ®
as a magic entity and encode it as ®
. This will result in a corrupted QUERY_STRING
. If you encounter this problem, then either you should avoid using such keys or you should separate parameter pairs with ;
instead of &
. Both CGI.pm
and Apache::Request
support a semicolon instead of an ampersand as a separator. So your URI should look like this: http://my.site.com/foo.pl?foo=bar;reg=foobar
.
Note that this is only an issue when you are building your own URLs with query strings. It is not a problem when the URL is the result of submitting a form because the browsers have to get that right.
IE 4.x does not re-post data to a non-port-80 URL
One problem with publishing 8080 port numbers (or so I have been told) is that IE 4.x has a bug when re-posting data to a non-port-80 URL. It drops the port designator and uses port 80 anyway.