* Marius Kjeldahl <[EMAIL PROTECTED]> [2008-05-05 00:20]: > Everything seems to work fine
“Seems” being the operative word. > with one small exception. Whenever I have a HTML form input > type=text with an international character and the form > validation fails, so the default value of the input field > contains the international character, the rest of the html > document does no longer display international characters > correctly. That is because all of that was not marked as character data to begin with. When Perl tries to concatenate it with a Unicode string, it sees byte strings so it decodes them as Latin-1. Then all the UTF-8 multibyte characters turn into gremlins. > I'm guessing the browser detects that the document contains > some element that is not proper utf8, and disables utf8 > altogether before displaying whenever the input field contains > an international characters. You’re probably wrong about that guess. What headers do you send? Do you use `<meta http-equiv="Content-Type">`? (Bad idea, btw.) > If I remove the international character from the input field > and resubmit, everything is displayed correctly again. […] The > input field value is set in the template from the > $c->req->parameters passed in the stash. Are you using Catalyst::Plugin::Unicode? > So my question is what's the best way to handle this? Did you tell Template Toolkit or whatever template engine you use that the templates are in UTF-8? > Can an input value in a form handle a utf8 encoded string at > all Yes. > and if so how can I convince it my string is utf8, and if I do > does the browser detect it automagically? No, the headers must be set correctly. > Any pointers? In addition to the above? Check out encoding::warnings. Regards, -- Aristotle Pagaltzis // <http://plasmasturm.org/> _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
