Doctrine (Symfony4) хранит данные как недопустимые значения HEX - PullRequest
0 голосов
/ 08 октября 2019

Когда я собирался развернуть свое приложение Symfony4 в Ubuntu 18 php7.1-fpm + apache, я выполнил несколько команд для загрузки данных по умолчанию и некоторых приборов. Проблема в том, что всегда получают SQLSTATE[22021]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8": 0xcd 0x73 В объектах, которые я заметил, это поля, которые отображаются как массив, json или simple_array.

Вот пример значения одного из этих полей:

\x65\x6d\x70\x72\x65\x73\x61\x20\x64\x65\x20\x6
  1\x73\x65\x67\x75\x72\x61\x6d\x69\x65\x6e\x74\x6f\x20\x6c\x6f\x67\xcd\x73\x74\x69\x63\x6f\x20\x61\x6c\x20\x74\x61\x62\x61\x63\x6f

Это значение для массива строк.

Конфигурация базы данных установлена ​​на UTF-8, также как и конфигурация php.ini, сервер базы данных также создан с использованием UTF-8.

Как я могу это исправить? Я создал базу данных несколько раз, но результаты остались прежними.

Заранее спасибо !!

ОБНОВЛЕНИЕ

Когда я повторяю процесс наWindows ничего этого не происходит ...

ОБНОВЛЕНИЕ

Здесь полный журнал сбоя

[2019-10-08 15:21:26] doctrine.DEBUG: INSERT INTO ext_log_entries (id, action, logged_at, object_id, object_class, version, data, username) VALUES (?, ?, ?, ?, ?, ?, ?, ?) {"1":2042,"2":"create","3":"2019-10-08 15:21:24","4":2042,"5":"App\\Entity\\SeaShipment","6":1,"7":{"manifest":"0323/2019","dmNumber":null,"arrivedAt":"2019-09-16 23:00:00","companyName":"MAQUIMPORT","agencyName":"MINAGRI","contractNumber":null,"merchandiseDescription":null,"countryName":null,"dmNumberAt":null,"etaAt":null,"funderName":null,"customerName":null,"empoweredName":null,"buyerName":null,"docsReceivedAt":null,"originalDocsReceivedAt":null,"billingDeliveredAt":null,"funderBilling":null,"deliveredCustomerAt":null,"isUpdatable":null,"createdFromIp":null,"lastUpdatedFromIp":null,"createdBy":null,"lastUpdatedBy":null,"createdAt":"2019-10-08 15:21:20","lastUpdatedAt":"2019-10-08 15:21:20","deletedAt":null,"seaShipmentType":null,"bl":"2019-M-001147","destinationDock":"TCM","isReleasedHouse":true,"isReleasedMaster":true,"isLocked":false,"isEnabled":true,"daysWithoutDm":0,"daysInTcm":3,"location":"B06","weight":8562,"yard":null,"cabotage":null,"transferedAt":"2019-09-16 14:25:00","transferedTo":"(binary value)","containerNumber":"MAGU5169507","containerType":"HC","containerDimention":40,"lastMarielReportAt":"2019-09-19 23:00:00","shippingCompanyName":"NIRINT","isActive":true,"shipName":null,"journey":null,"originDock":null,"blAt":null,"correspondentName":null,"forwarderName":null,"downloadUngroupAt":null,"beDeliveredAt":null,"packageQuantity":null,"shippingCompany":{"id":26}},"8":null} []

Для других подобных данных или транзакций до этогопроблема не происходит

1 Ответ

0 голосов
/ 08 октября 2019

Может быть, ваша база данных не принимает кириллицу / арабский алфавит и т. Д.? Если да, это может помочь (если вы используете mysql):

Добавить в файл etc / mysql / my.cnf:

[mysqld]
collation-server = utf8mb4_bin
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
skip-character-set-client-handshake

[client]
default-character-set   = utf8mb4

[mysql]
default-character-set   = utf8mb4

After that :

sudo service mysql restart 
then drop database and create it from scratch.
...