@heahoh
Full stackoverflow developer

Linux, как избавиться от проблем с кодировкой?

Добрый день!
На рабочей машине стоит win7, CI сервер гоняет сборку по тестам в виртуалке с установленной CentOS 6.7
Php проект использует codeception функциональные тесты. На локальной машине проблем не возникает, при переносе проекта на виртуалку - получаю следующую sql ошибку
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xD0\x9F\xD1\x80\xD0\xBE...' for column .......T acc_set_balance('*', '*', NOW(), '*', '*', '*', 'Продажа сертификата через web-сервис'

Что уже сделано:
Все файлы проекта в кодировке utf8 без bom (сообщение записано в файле),
В настройках подключения к БД (yii2) стоит 'charset' => 'utf8',
В my.cnf
[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

[mysqld]
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8

База, таблицы, колонки в utf* utf8_general_ci
  • Вопрос задан
  • 449 просмотров
Решения вопроса 1
Так вы конкретно все строки обработайте iconv или convert
Типа

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;


Верю, что делали, но все равно - обработайте каждую базу, таблицу и строку в таблицах.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы