Laravel UTF-8 к базе данных
Я использую Eloquent для сохранения () нового человека в моей базе данных. Имя лица содержит специальный символ é и он не подчиняется. Вот мои шаги и результаты.
echo Input::get('firstname'); // Miguél
что дает мне этот
Miguél
когда я начинаю использовать eloquent, происходит следующее.
$person = new Person();
echo $person->firstname = Input::get('firstname');
это дает следующий результат
мигу л
любая идея, что может быть не так? Это моя конфигурация настройки в laravel
и это моя база данных в phpmyadmin
спасибо
1 ответов
Я не думаю, что у него есть что-то общее с базой данных.
при использовании:
$person = new Person();
echo $person->firstname = Input::get('firstname');
вы не используете базу данных здесь. Вы просто назначаете свойства классу Person (который, вероятно, использует Eloquent), но вы ничего не помещаете в базу данных и ничего не получаете из базы данных, поэтому невозможно, чтобы проблема кодирования имела что-то общее с самой базой данных
потенциальная проблема на мой взгляд - вы определили мутатор в Person
класс firstname
атрибут, потому что у вас он в нижнем регистре (когда вы получаете его от ввода, он с заглавной буквы), поэтому вы, вероятно, используете какую-то функцию, такую как strtolower
и вы должны использовать mb_strtolower
для преобразования строк UTF-8 без проблем.