Похоже, у вас проблема с кодировкой.Вы должны убедиться, что вы используете UTF8 от начала до конца: клиент (браузер), сервер (PHP), соединение БД и БД.Я предполагаю, что ваши таблицы базы данных уже UTF8, но многие забывают о подключении к базе данных.Сразу после подключения к базе данных вы должны выполнить «запрос» SET NAMES UTF8.Не уверен, что CodeIgniter использует соединение db для экранирования символов.
Я не использую CodeIgniter, но если он не использует правильную кодировку, то двухбайтовые символы расширяются до 2 символов.Например, если вы запускаете urlencode ('Å'), возвращается% C3% 85, а не% C5.На самом деле это метод SQL-инъекции.Если один из символов, который он «декодирует», является «или», значит, существует проблема / уязвимость в кавычках. Это может привести к тому, что CodeIgniter неправильно оценивает строку.
Наконец, выполняете ли вы POST через javascript? Javascript не поддерживает кодировку UTF8, поэтому он вызывает некоторые проблемы в зависимости от того, как вы POST. Вы можете использовать Javascript, чтобы POST HTML-формы, но вы можете столкнуться с проблемами, когда вы пытаетесь сделать пост Ajax, используя строки, которые вы делаете сами.unescape (encodeURIComponent (s)) предположительно работает.