Я работаю над сайтом, который использует / хранит акцентированные символы в базе данных. У меня установлен шаблон страницы так, чтобы переменная charset config.php соответствовала настройке, например:
<meta charset="<?php echo $this->config->item('charset');?>">
Проблема, с которой я столкнулась, заключается в том, что когда $config['charset']
установлен в UTF-8 , проверка формы завершается с ошибкой, и, как если бы акцент был включен, символы не были отправлены. Так, например, обязательное поле будет возвращаться назад, если оно включено в строку. Строка минус á отлично работает.
Мне удалось получить эту работу, изменив $config['charset']
на ISO-8859-1 и конвертируя текст в UTF-8 перед вставкой / после извлечения из базы данных с помощью php's utf8_encode()
и utf8_decode()
. Является ли это лучшим способом или мне не хватает чего-то необходимого, чтобы получить UTF-8 с акцентированными символами, работающими в CodeIgniter?
Любые советы приветствуются.
Вы должны убедиться, что используете UTF-8 всюду, и что PHP и MySQL настроены для обработки UTF-8.
В html добавьте метатег:
<meta charset="utf-8" />
И сохраните его в формате UTF-8. вот как это сделать в блокноте ++ .
Определите таблицы MySQL для поддержки UTF-8, создайте таблицу с:
DEFAULT CHARSET=utf8;
И установите соединение:
mysql_set_charset('utf8', $con);
Включите UTF-8 в php.ini
:
default_charset = "utf-8"
Для полной ручной проверки. Обработка Unicode Front To Back в веб-приложении.