[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