изменение HTML-кодировки макета в symfony

#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.

  1. Поместите новый файл класса в apps / frontend / lib
  2. Добавьте новый класс в apps/frontend/config/filters.yml
  3. Измените кодировку setContentType и содержимое sfResponse в новой функции класса.