November 12th, 2009

Encode шаблонов в Mojo или я на глагне

Столкнулся с большой проблемой в Mojo.
У меня есть проект на cp1251, и перейти на utf-8 я не могу по техническим причинам. Этот проект является сервером для j2me клиента, и для кросс-платформенности на всех телефонах я сделал на нем универсальный decode, но привязка была к cp1251. Поэтому кодировку менять я не могу. Решил начинать переписывать все на Mojo. Столкнулся с тем, что Mojo делает encode всех шаблонов в utf-8. Естественно у меня все поплыло на фанере до парижа. И я решил сделать возможность смены кодировки, просто в startup пишем:
         $self->renderer->encoding('cp1251');
И он все шаблоны будет переводить в cp1251. По умолчанию будет UTF-8.
Автор эту возможность одобрил, да не полностью. Изначально я сделал возможность не только сменить кодировку, но и вовсе выключить encode шаблонов ($self->renderer->encoding('');). Но это автор уже не одобрил, долго с ним спорил. Ну не пойму я, зачем делать encode шаблонов, если я уверен, что у меня с данными все в порядке. Говорит, что это может быть не предсказуемо. Ну дело его, проект его, он о нем больше знает, и решать ему - все равно человек рульный.
Начал тестить нововведение с правками автора. И тут не задача. Надо делать decode всех переменных. Я решил вопрос так:
% use encoding 'cp1251';
во всех шаблонах. Да, не удобно, но что делать...