[Catalyst] Fix for content-length issue introduced with Catalyst 5.8.x

Dominic Germain mailinglists at sogetel.com
Thu Feb 16 02:51:34 GMT 2012


We just update from Catalyst 5.7.x to Catalyst 5.90007.

All our apps code and our DBs are in ISO-8859-1 encoding.  View::TT is conf=
igured to output stuff as UTF-8 and everything is working fine until the up=
date.  It means that there is some re-encoding occurring somewhere in Catal=
yst View processing.

The problem is quite simple:  Catalyst is unable to figure out the right co=
ntent-length as soon we have characters that requires two bytes in UTF-8.  =
French accent characters like "=E9", "=EA", '=E8", "=E0", etc. are good exa=
mples.  Previously, "bytes::length" was used and it works fine but the code=
 was changed to just "length".

Because of that, if I have 100 accentuated characters in the body, the last=
 100 characters will be chopped by all browsers that are taking care of con=
tent-length (Chrome and Safari for example).  It seems that FF doesn't care=
 about content-length, it displays everything.  Don't know about IE.

reverting back to the old way does the trick...

Catalyst.pm version 5.90007 line 1886

>         else {
>             # everything should be bytes at this point, but just in case
>             $response->content_length( length( $response->body ) );
>         }

fix inspired from 5.7 branch

>         else {
>             # everything should be bytes at this point, but just in case
>             $response->content_length( bytes::length( $response->body ) );
>         }

I hope this will be fixed in a future release.  It seems that there is some=
 people complaining about that.


Dominic Germain
Administrateur r=E9seau / Network administrator

mailinglists at sogetel.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20120215/ed432=

More information about the Catalyst mailing list