来自数据库的Symfony4数据未经过utf8编码

时间:2018-12-10 23:06:03

标签: php symfony doctrine symfony4 utf8mb4

为什么datebase中的数据未进行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”的“Ogólne”插图。

enter image description here

仅在生产中出现问题。本地编码可以。 我在生产环境上使用MySQL 5.7,在本地使用MariaDB 10.1。

1 个答案:

答案 0 :(得分:0)

我知道了。

我已经在doctrine.yaml中的dbal配置中添加了以下代码,并且可以正常工作!!

options:
    1002: "SET NAMES 'UTF8'"

发生数据库连接是拉丁编码的,并且上面的代码强制执行utf8。