В моем случае я сериализировал форму ввода с помощью jquery serialize (), а затем кодировал ее с помощью encodeURIComponent ().
var datas = form.serialize();
encodeURIComponent(datas);
$.getJSON(url,datas,function(){});
и codeigniter выдавал недопустимую ошибку символа.
Я подумал, что проблема здесь в том, что jquery serialize дает закодированный вывод, и я снова кодировал его с помощью codedeURIcomponent, который был ненужным, и когда codeingiter декодировал его, он не получал фактическую строку, поскольку некоторая часть была закодирована дважды.
я объясню это на примере.
string: quantity[]=1&option=sell
urlencoded while serializing: quantity%5B%5D%3D1%26option%3Dsell
again urlencoded with encodedURICompontent(): quantity%255B%255D%253D1%2526option%253Dsell
--- на коде
urldecode: quantity%5B%5D=1&option=sell
, который запрещает использование символов согласно регулярному выражению входного класса.
примечание: это не ответ на этот вопрос, но поможет проверить, не возникает ли кто-то с этой ошибкой ... спасибо.