Am 19.06.2009 um 06:23 schrieb seasproc...@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
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/