#symfony1 #character-encoding #symfony-1.4
#symfony1 #кодировка символов #symfony-1.4
Вопрос:
Я создаю веб-приложение на Symfony 1.4, и его кодировка символов установлена в utf-8 (по умолчанию). Это нормально, но я хотел бы изменить кодировку символов на s-jis в зависимости от некоторых ситуаций.
Я попробовал использовать приведенный ниже код в модуле (action.class.php ), но это не работает должным образом:
if('some situation')
{
$context = $this->getContext();
$response = $context->getResponse();
$response->setContentType('application/xhtml xml; charset=Shift_JIS');
mb_internal_encoding('SJIS-win');
mb_http_output('SJIS-win');
}
Кто-нибудь знает, как изменить кодировку символов на sjis temporaly?
Спасибо!
Ответ №1:
Вы можете попробовать это в начале вашего actions.class.php
$this->getResponse()->initialize(new sfEventDispatcher(), array('charset' => '<something>'));
Комментарии:
1. спасибо, но я нашел способ сделать это в symfony через класс srFilter.
2. Пожалуйста, поставьте ответ здесь, чтобы все могли узнать — даже я 😉
Ответ №2:
Я не мог ответить до сих пор. Вот так.
Мы должны использовать класс, который наследуется от класса sfFilter.
- Поместите новый файл класса в apps / frontend / lib
- Добавьте новый класс в apps/frontend/config/filters.yml
- Измените кодировку setContentType и содержимое sfResponse в новой функции класса.