Bill Barker wrote:
Hi,

Tomcat 5.0 always adds a charset=ISO-8859-1 to the content type. While
this is I think relatively legal, it is rather risky (it causes problems
with some clients, as I've read on tomcat-user), and very dubious when
dealing with non text data.

Example:
GET /tomcat.gif HTTP/1.0
User-Agent: ApacheBench/1.3d
Host: 127.0.0.1
Accept: */*

HTTP/1.1 200 OK
ETag: W/"1934-1068549702000"
Last-Modified: Tue, 11 Nov 2003 11:21:42 GMT
Content-Type: image/gif;charset=ISO-8859-1
Content-Length: 1934
Date: Tue, 11 Nov 2003 14:59:56 GMT
Server: Apache-Coyote/1.1
Connection: close

(lol)

Maybe Jan's changes to charset handling caused that.
If charset is not explicitely added, I think it should not be added to
content-type either.

What about adding the charset only when contentType.startsWith("text")? A better choice would be when usingWriter is true, but that's not available here.

Since Writer output is sent out as iso-latin-1 if the Servlet doen't set the
charset, I think that it would be better to add the charset to the header,
rather than trust that the browser's default encoding is compatible.

If the charset is iso-latin-1, then it will be displayed.


The startsWith could possibly be going too far, unless this is written in black and white in the HTTP spec (I didn't check).
I think my patch restored the previous behavior (and saved some object allocation in the general case). People seemed to be fine with it, unlike the new behavior (for which I've seen complaints on tomcat-user).


Remy



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to