Symfony 2 вставляет кириллицу в базу данных

Недавно я столкнулся с некоторыми проблемами при попытке вставить русский кириллический текст в базу данных. Я использую фреймворк symfony2, использую Doctrine ORM и веб-сервер Nginx. База данных представляет собой PostgreSql. Проблема возникает иногда, когда я пытаюсь вставить русский текст в столбец, я получаю 500 Internal Server Error с этим сообщением:

SQLSTATE[22021]: Character not in repertoire: 7 ERREUR: invalid byte sequence for encoding « UTF8 » : 0xd1

И самое странное, что это происходит в столбце, а не в другом с той же строкой... Мои файлы php и БД правильно кодируются в UTF8.

Есть ли кто-нибудь, кто уже столкнулся с той же проблемой и смог ее решить? Большое спасибо за помощь.

Запрос \l от psql показывает кодировку UTF8 и Collate и Ctype fr_FR.UTF-8.

server_encoding UTF8

client_encoding UTF8

person user3816913    schedule 15.07.2014    source источник


Ответы (1)


Основываясь на том, что показано, если эта ошибка находится только в одном столбце с той же строкой другого, которая работает, я думаю, вы должны быть уверены, что столбец, который дает ошибку, имеет правильную сортировку, потому что проблема, безусловно, связана с Character not in repertoire: 7 ERREUR: invalid byte sequence for encoding « UTF8 » : 0xd1 из-за Ctype fr_FR.UTF-8, потому что диапазон байтов fr_FR отличается от кириллицы.

Я управляю кириллическими символами в моей базе данных mysql со всеми таблицами/сопоставлениями, закодированными с помощью юникода utf-8 (или вообще).

Надеюсь это поможет.

person gp_sflover    schedule 16.07.2014
comment
Привет, спасибо за ваш ответ. Если я хочу изменить параметры сортировки, мне нужно создать новую базу данных, правильно ли это? Однако я могу вставлять символы кириллицы с помощью SQL-запроса... так что, может быть, проблема связана с symfony? - person user3816913; 18.07.2014
comment
Если эта таблица уникальна, чтобы иметь Ctype fr_FR.UTF-8, достаточно применить изменение только к ней, в противном случае лучше перенести все данные в новую базу данных с правильными параметрами. Если я хорошо помню и хорошо понимаю, что вам нужно, вы можете использовать кириллицу, не заботясь о ее кодировании перед вставкой в ​​SQL Req. Я также использовал кириллицу в маршрутах без каких-либо проблем (есть только несколько советов по уходу) - person gp_sflover; 19.07.2014