[Catalyst] ajax character encoding issue solved, but WHY?

Moritz Onken onken at houseofdesign.de
Fri Jun 19 07:52:33 GMT 2009


Am 19.06.2009 um 06:23 schrieb seasprocket at gmail.com:

> I had a character encoding issue that I finally solved, but I don't  
> understand why the fix works. I'm hoping someone can explain this to  
> me!
>
> The issue was that non-ascii chars were appearing as junk BUT only  
> when retrieved via ajax calls. Otherwise, they displayed fine. The  
> junk display was due to them being interpreted as ISO-8859-1, but I  
> could not figure out why the browser was interpreting that way. All  
> my data is handled as UTF-8.
>
> The problem was fixed by calling utf8::decode on the data prior to  
> sending back via ajax. BUT WHY?
>
> I am using the JSON view to render ajax responses, and it sets the  
> charset header correctly to UTF-8. Of course, even when you decode,  
> perl still represents as "internal" utf8. But why should this be  
> necessary?
>
> Thanks!
>

What is the encoding of the web page that issues that ajax request?
Does this occur on different browser as well?
I had similar problems and solved it by making sure that
every page has the utf8 encoding header set.

IMHO using utf8::decode is a hack and should be avoided if possible.

moritz



More information about the Catalyst mailing list