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]

Reply via email to