Symfony Doctrine:没有存储表情符号

时间:2017-10-18 08:28:10

标签: mysql symfony doctrine-orm

我正在尝试用emojis保存文本。但是表情符号不存储在文本中。我没有表情符号,而是在数据库中获得?

 # Doctrine Configuration
 doctrine:
     dbal:
         driver: pdo_mysql
         host: '%database_host%'
         port: '%database_port%'
         dbname: '%database_name%'
         user: '%database_user%'
         password: '%database_password%'
         charset: utf8mb4

我希望保存表情符号的课程

/**
 * Post
 *
 * @ORM\Table(name="post", options={"collate"="utf8mb4_unicode_ci", "charset"="utf8mb4"})
 * @ORM\Entity(repositoryClass="AppBundle\Repository\PostRepository")
 */
class Post
    {
    /**
     * @ORM\Column(type="integer", name="id")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="text", nullable=false, name="text")
     */
    private $text;

 }

实施例

POST正文

 {"text": "test  test"}
数据库

中的

text

 test ? test

2 个答案:

答案 0 :(得分:0)

您需要设置character_set_client _connection_results

示例 MySQL 查询可能如下所示

SET character_set_client = 'utf8mb4';
SET character_set_results = 'utf8mb4';
SET character_set_connection  = 'utf8mb4';

答案 1 :(得分:-1)

您可能需要将MySQL表更改为charset = utf8mb4。

How to insert utf-8 mb4 character(emoji in ios5) in mysql?