Перед сохранением данных в базе данных данные POST уже были загрязнены.
Кстати, я тоже использую CI Framework.
Пример, данные на стороне клиента на стороне
Cow&Gate/英国牛栏
используя обычный метод отправки формы, и что вы получите в PHP Server Side?
Вы получите
Cow&Gate;/英国牛栏
Как ни странно, точка с запятой была добавлена
Если вы публикуете данные с помощью XML (или ajax или jquery), вы можете использовать encodeURIComponent
метод в javascript для кодирования данных перед их отправкой на сервер, и вам не нужно было бы выполнять какую-либо дополнительную работу на стороне сервера PHP.
Например: $.post('http-server-API', {"field": encodeURIComponent('Cow&Gate/英国牛栏')})
Проверьте параметры $ _POST на стороне сервера PHP (точка с запятой не будет добавлена)