Небольшая заметка про utf-8 в Mojolicious

в 10:41, , рубрики: mojolicious, mysql, perl, utf8, метки: , , ,

Я потратил чуть больше времени, чем мне хотелось бы, борясь с Юникодом в своем 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

Источник

Поделиться

* - обязательные к заполнению поля