Я потратил чуть больше времени, чем мне хотелось бы, борясь с Юникодом в своем Mojo проекте, и теперь хочу поделиться полученым опытом, чтобы сэкономить вам несколько драгоценных минут и нервных клеток.
Итак, нужно убедиться, что:
1. Ваша база работает в utf-8.
На примере mysql:
my $dbh = DBI->connect($dsn . "; mysql_enable_utf8=1", $user, $pass); # либо, после создания $dbh: $dbh->{mysql_enable_utf8} = 1; $dbh->do("set names utf8");
Теперь все данные, которые вы пишете или читаете из базы, будут в utf8.
2. У вас правильная кодировка в базе и таблицах
Создавая базу, не забудьте написать
create database foobar default charset = utf8;
Или, при создании таблицы
create table foo (id serial, name varchar(128) not null) default charset = utf8;
2. Во всех ваших шаблонах в начале написано
% use encoding 'utf8';
Должно заработать!
Автор: acidnik