Я разрабатываю приложение Zend. Данные в моей базе данных закодированы в "utf8_unicode_ci".
Я заявил в своем application.ini:
resources.view.encoding = "UTF-8"
но всякий раз, когда я пытаюсь получить строку, содержащую специальные символы, такие как
{'é', 'à', 'è', ...} в БД, строка не отображается, если я не использую функцию: utf8_decode()
Поэтому я попытался установить кодировку UTF-8 в:
Bootstrap:
protected function _initDoctype() {
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('XHTML_STRICT');
$view->setEncoding('UTF-8');
}
protected function _initFrontControllerOutput() {
$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');
$response = new Zend_Controller_Response_Http;
$response->setHeader('Content-Type', 'text/html; charset=UTF-8', true);
$frontController->setResponse($response);
$frontController->setParam('useDefaultControllerAlways', false);
return $frontController;
}
Макет:
$this->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf8');
echo $this->headMeta();
application.ini:
resources.view.encoding = "UTF-8"
resources.db.params.charset = "utf8"
РЕДАКТИРОВАТЬ: теперь я могу отображать специальные символы на странице, но когда я получаю элементы из базы данных, специальные символы не отображаются.
- экранированная строка возвращает
null
($this->escape($string)
)
echo $string
заменяет специальные символы на ?
, поэтому мне все еще нужно использовать utf8_decode()
для их отображения. Любое предложение?
спасибо за вашу помощь !!