Hi All,
(We may be barking up the wrong tree here, so if so please point me in the
right direction)
This is still causing us issues - as IE fails to parse a charset when it is
tacked on to Content-Type: application/vnd.ms-excel
It would appear that the charset is being tacked onto the Content-Type in
setContentType method of
catalina/src/share/org/apache/catalina/connector/ResponseBase.java in the
event of it not being supplied in the Content-Type (it looks for a ';')
The encoding can never be null as it is extracted from the locale in the
setLocale method below it.
I understand this to mean that the charset will always be tacked on
irrespective of the Type.
However;
I cannot find an explicit reference to not defining a charset for binary
Types, but I cannot see why you would want to.
HTTP 1.1 implies that there is a default charset for text Types (makes
sense)(http://www.w3.org/Protocols/rfc2068/rfc2068)
'When no explicit charset parameter is provided by the sender, media
subtypes of the text type are defined to have a default charset value of
ISO-8859-1'
Which I understand that it is fair enough to add it to text/* Types.
RFC 1341 (http://www.faqs.org/rfcs/rfc1341.html) states that:
'2.a. A text Content-Type value, which can be used to represent textual
information in a number of character sets and formatted text
description languages in a standardized manner.'
But no mention of Charsets in Application types:
'2.c. An application Content-Type value, which can be used to transmit
application data or binary data, and hence, among other uses, to
implement an electronic mail file transfer service.
What I would suggest is a little if wrapper to only add a default if the
Content-Type is text/
A sudo code below (not tested)
###
catalina/src/share/org/apache/catalina/connector/ResponseBase.java
public void setContentType(String type) {
if (isCommitted())
return;
if (included)
return; // Ignore any call from an included servlet
this.contentType = type;
if (type.indexOf(';') = 0) {
encoding = RequestUtil.parseCharacterEncoding(type);
if (encoding == null)
encoding = ISO-8859-1;
} else {
if (encoding != null type.startsWith('text/'))
this.contentType = type + ;charset= + encoding;
}
}
Regards,
Greg
-Original Message-
From: Tim Funk [mailto:[EMAIL PROTECTED]
Sent: 16 December 2003 18:09
To: Tomcat Developers List
Subject: Re: Intro/question possible buglet with Content-Type and
Charsets .
Yeah, nagoya.apache.org seems down. Hopefully it will be back
soon. The bug
has good detail of what and how to fix.
-Tim
[EMAIL PROTECTED] wrote:
Thanks Tim,
Having a little trouble getting anything from bugzilla,
nagoya.apache.org
seems to be having a little trouble!
Looking in the archives for this id, I see that someone has
a 4.1.29 patch
and a complied class, but cannot see either email address
or content via the
archive.
Ho hum
Thanks for the pointer.
Greg
-Original Message-
From: Tim Funk [mailto:[EMAIL PROTECTED]
Sent: 16 December 2003 12:31
To: Tomcat Developers List
Subject: Re: Intro/question possible buglet with Content-Type and
Charsets.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24970
[EMAIL PROTECTED] wrote:
Hi All,
Quick intro, and then a question;
We use tomcat to host java web applications at our
location. My client
requires us to follow very strict rules for deploying
software, that means
it can be a documentation intensive process (evidence
gathering/ IQP's etc
). So we rarely upgrade as it is quite allot of
work. Luckily
tomcat is excellent and rarely needs upgrading or patching.
Now the question;
Tomcat 4.1.29 seems to insist on added charset to the
content type, even if
a Content-Type has been set using response.setContentType
or similar
(without a charset). Tomcat 5 seems to do something
similar judging from
http://www.mail-archive.com/[EMAIL PROTECTED]/msg4
9015.html but
I think it fails to check if the Content type is a text one
(HTML) and adds
it for any content type, which would appear not to be right IMHO.
Without wishing to appear rude :-) I need to change this
behaviour and
remove the insertion of the charset for non text based
Content-Types eg:
application/vnd.ms-excel
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]