Неправильная сортировка создает недействительные маркеры laravel - PullRequest
0 голосов
/ 22 января 2020

Итак, я разрабатываю приложение laravel на своем локальном хосте, которое является windows ноутбуком, но мой сервер приложений находится на сервере linux. Когда я разрабатываю и сохраняю в текстовой области какой-то случайный текст со специальными символами, такими как «Ç ~ º», все хорошо сохраняется в БД и отображается в браузере. Проблема в сервере (linux), он создает специальные символы, такие как "pátio nº 64/2" и плохо отображает в браузере.

Я пытался изменить параметры сортировки в config / База данных. php Файл совпадает с DB (мы используем португальскую сортировку) 'collation' => 'Latin1_General_CI_AS' и charset => 'utf8', но ничего не изменилось.

Есть идеи? Я использую sql серверную базу данных. Если я изменяю кодировку на latin1 вместо utf8, сервер выдает ошибку

PDOException in Connector.php line 55
SQLSTATE [] (null) (severity o)

Я также пытался не использовать html декодировать объекты перед сохранением в дб, но не сработало. Мне действительно нужна помощь в этом вопросе ...

Ответы [ 2 ]

0 голосов
/ 23 января 2020

В моем контроллере я использовал это перед сохранением,

$ var = iconv ('UTF-8', 'ISO-8859-1 // TRANSLIT', $ request-> input ('input1) '));

0 голосов
/ 22 января 2020

Вы должны изменить collate и charset. Если вы можете установить collate и charset через config/database.php, то вы можете сделать это (для mysql):

'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',

Но если вы не хотите менять Сортировка БД, тогда у вас есть возможность изменить параметры сортировки и кодировки только для указанной таблицы c. Для этого используйте следующий запрос:

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...