gpt4 book ai didi

mysql - Symfony 教义 : emojis are not stored

转载 作者:行者123 更新时间:2023-11-29 01:05:19 26 4
gpt4 key购买 nike

我正在尝试使用表情符号保存文本。然而,表情符号不存储在文本中。我得到的不是表情符号,而是 ? 在数据库中。

 # 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

最佳答案

我知道这已经有一段时间了,但这为我解决了(Symfony 5):

  • config/packages/doctrine.yamldbal 下,您必须添加键值对 charset: utf8mb4。配置记录在此处:https://symfony.com/doc/current/reference/configuration/doctrine.html
  • 如果这不起作用,您必须检查 .env(或 .env.local)中的 DATABASE_URL 是否存在覆盖字符集。如果它正在覆盖它,您只需将其更改为 utf8mb4

这是假设数据库是 utf8mb4。如果不是(并且您不能更改它),则必须转义表情符号字符。

关于mysql - Symfony 教义 : emojis are not stored,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46805818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com