Я пытаюсь сохранить символы UTF-8 с Zend_Cache (например, Ť, š и т. Д.), Но Zend_Cache запускает их и сохраняет их как Å, ¾ и другие странные символы.Задача Zend_Cache и UTF-8
Вот отрывок из моего кода, который сохраняет данные в кэш (символы UTF-8 перепутались только в Интернете, когда я пытаюсь его на моем компьютере, на локальном хосте работает нормально):
// cache the external data
$data = array('nextRound' => $nextRound,
'nextMatches' => $nextMatches,
'leagueTable' => $leagueTable);
$cache = Zend_Registry::get('cache');
$cache->save($data, 'externalData');
Перед тем, как сохранить кэшированные данные, я очистить его с HTMLPurifier и сделать некоторые синтаксический с DOM, что-то вроде этого:
// fetch the HTML from external server
$html = file_get_contents('http://www.example.com/test.html');
// purify the HTML so we can load it with DOM
include BASE_PATH . '/library/My/htmlpurifier-4.0.0-standalone/HTMLPurifier.standalone.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$purifier = new HTMLPurifier($config);
$html = $purifier->purify($html);
$dom = new DOMDocument();
// hack to preserver UTF-8 characters
$dom->loadHTML('<?xml encoding="UTF-8">' . $html);
$dom->preserveWhiteSpace = false;
// some parsing here
Вот как я инициализировать Zend_Cache в загрузочном файле:
protected function _initCache()
{
$frontend= array('lifetime' => 7200,
'automatic_serialization' => true);
$backend= array('cache_dir' => 'cache');
$this->cache = Zend_Cache::factory('core',
'File',
$frontend,
$backend);
}
Любые идеи? Он работает на localhost (где у меня есть поддержка иностранного языка, используемого в HTML), но не на сервере.
Вы абсолютно уверены, что его не на то будет обработка очистителя meesing это? Что произойдет, если вы устраните эту часть процесса? – prodigitalson
Я на 99% уверен. Я попытался исключить часть процесса HTMLPurifier, и проблема не устранена. –
Опубликуйте свою конфигурацию mbstring в php.ini на localhost и сервере, пожалуйста, –