[Catalyst] uri_for and unicode
Bernhard Graf
catalyst4 at augensalat.de
Tue Mar 9 14:05:24 GMT 2010
Am 09.03.2010 14:30, schrieb Alex Povolotsky:
> After adding Catalyst::Plugin::Unicode::Encoding, it became MUCH worse.
> What was readable, became unreadable. What was unreadable, remained so.
> Replacing C::P::Unicode by C::P::Unicode::Encoding did not yield any
> difference.
Then you are probably doing it wrong!
I suspect that you want to use cyrillic characters. The problem is, that
most software components (also Perl) default to latin1 or similar.
A good start is always to use utf-8 encoding everywhere: your source
code, your web pages encoding and your database charset.
Always
use utf8;
in your Perl file!
(unless you are absolutely sure, you are not using any non-ASCII chars)
Explicitly set your databases encoding to utf-8 on connect (see the
appropriate DBD::*/DBIC manpages how to do that) and don't use
DBIx::Class::UTF8Columns.
Tip for MySQL: To check that your data isn't accidently double-encoded,
you might want to use length(). This function returns the number of
bytes, so e.g. if a field contains the string 'süß', length(field)
returns 5 (because ü and ß are encoded in 2 bytes in utf-8). If it is
not 5, your data encoding is borked.
HTH
Bernhard
More information about the Catalyst
mailing list