Ошибка 'неверная строка UTF-8 со смещением 1' из регулярного выражения - PullRequest
0 голосов
/ 08 января 2019

Мне нужна помощь, я пытался найти решение, но до сих пор все, что я нашел, - это материал, связанный с регулярным выражением, но я думаю, что проблема может быть в другом месте.

У меня есть проект локально (Windows 10 -> Xampp Последняя версия [Apache & Mysql], я использую CodeIgniter в качестве фреймворка, я разработал функцию, которая выполняет поиск в моей базе данных с помощью REGEXP (я использую построитель запросов)

Работает нормально и все. Здесь я искал saltarín <- обратите внимание на ударение на букве <code>i enter image description here

Итак, теперь, когда это работает, я решил обновить веб-сайт, но как только я тестировал онлайн-проект, я заметил, что при поиске чего-либо с акцентированными символами появляется ошибка, или в этом случае буква ñ, которая также работает локально.

enter image description here Я проверил свои конфигурации базы данных, в database.php у меня dbcollat ​​установлено в utf8_spanish_ci, и моя онлайн-база данных и таблицы также установлены в utf8_spanish_ci, я думаю, что это должна быть конфигурация сервера, но у меня нет представления о том, что это на самом деле может быть

Если вам это нужно, это фрагмент кода, использующий регулярное выражение

$this->db->where("lower(secret_colum_name) REGEXP", $this->secret_hehe);

Большое спасибо за ваше время, я очень ценю вашу помощь.

РЕДАКТИРОВАТЬ: Я забыл упомянуть, что я использую hostinger для размещения моего сайта

1 Ответ

0 голосов
/ 08 января 2019

Это снова я. Как я и подозревал, это было что-то с сервером. После нескольких часов исследований я обнаружил, что у моего сервера нет тех же расширений и конфигураций, вы можете использовать команду php -m, чтобы узнать ваши локальные расширения, чтобы вы могли затем включите их на вашем удаленном сервере, что в моем случае я должен был сделать с помощью c-панели, но ваш случай мог быть другим.

enter image description here

Я также изменил свою версию php на удаленном сервере, и я не совсем уверен в следующем, но это могло бы помочь.

В моей модели определен сеттер, который сделал следующее

$this->my_var = strtolower($my_var);

Я удалил strtolower и после всех ранее упомянутых шагов я перезагрузил свой сайт и теперь он работает

enter image description here

...