Данные Symfony4 из базы данных не кодируются в формате utf8 - PullRequest
0 голосов
/ 11 декабря 2018

Почему данные из базы данных не кодируются в utf8?utf8mb64_general_ci устанавливается для каждого столбца, таблицы и самой базы данных.Мой doctrine.yaml ниже:

parameters:
# Adds a fallback DATABASE_URL if the env var is not set.
# This allows you to run cache:warmup even if your
# environment variables are not available yet.
# You should not need to change this value.
env(DATABASE_URL): ''

doctrine:
dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: '5.7'
    charset: utf8mb4
    default_table_options:
        charset: utf8mb4
        collate: utf8mb4_unicode_ci

    url: '%env(resolve:DATABASE_URL)%'
orm:
    auto_generate_proxy_classes: '%kernel.debug%'
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true
    mappings:
        App:
            is_bundle: false
            type: annotation
            dir: '%kernel.project_dir%/src/Entity'
            prefix: 'App\Entity'
            alias: App

Тем не менее, я получаю, например, "Og�lne" insto "Ogólne".

enter image description here

Проблема возникает только на производстве.Локальное кодирование в порядке.Я использую MySQL 5.7 на производстве и MariaDB 10.1 локально.

1 Ответ

0 голосов
/ 11 декабря 2018

Я понял это.

Я добавил этот фрагмент кода ниже в конфигурации dbal в doctrine.yaml, и он работает !!!

options:
    1002: "SET NAMES 'UTF8'"

Произошло соединение с БДбыл закодирован в латинском коде и приведенный выше код принудительного применения utf8.

...