gpt4 book ai didi

php - 当 mysql 中存在 unicode 字符时,无法将条目存储为字符串

转载 作者:行者123 更新时间:2023-11-30 01:18:34 25 4
gpt4 key购买 nike

我有以下字符串:

\ud83d\udc57 DESTINATION OF SHOPAHOLIC\n\u260e 088216013304 \/ 085713900029\n\ud83d\udcf1 BB 328713BD\n\u2712 LINE : ladydhie\n\ud83d\udcb3 BCA \n\ud83d\udc8b KEEP CALM AND HAPPY SHOPPING!!!\ud83d\udc8b

我想将其作为字符串存储在 MySQL 中,但是对此进行简单的插入却给我带来了空。我需要做一些特别的事情吗?

我使用 Symfony2 和 Doctrine 作为 ORM。所以我有一个名为 User 的对象,它有一个名为 bio 的列并存储为字符串,但是当我执行以下操作时:

user->setBio(\ud83d\udc57 DESTINATION OF SHOPAHOLIC\n\u260e 088216013304 \/ 085713900029\n\ud83d\udcf1 BB 328713BD\n\u2712 LINE : ladydhie\n\ud83d\udcb3 BCA \n\ud83d\udc8b KEEP CALM AND HAPPY SHOPPING!!!\ud83d\udc8b) 

这给了我存储在数据库中的空生物。我应该怎么做才能正确存储它。

最佳答案

确保表列的排序规则为 utf8mb4,并且 MySQL 连接排序规则为 utf8mb4

MySQL 的基本 utf8 字符集仅支持基本多语言平面中的字符(UTF-8 中的 3 个字节)。像 U+1F457 DRESS 这样的表情符号不在 BMP 中,因此只能以完整的 4 字节形式存储。

how do I check the mysql connection collation?

我不熟悉 Doctrine,但看起来您应该能够在 pdo_mysql 连接上设置 charsetutf8mb4。您还可以将 my.cnf 配置 default-character-set 设置为 utf8mb4

此外,我不确定您上面使用的语法是什么,但 PHP 没有 \u 转义符。要在 PHP 字符串中包含字符 U+1F457,您应该直接将其键入为 '👗',并将 .php 文件保存为 UTF-8,或者包含 UTF-8 字节编码 '\xF0\x9F\x91\x97'

关于php - 当 mysql 中存在 unicode 字符时,无法将条目存储为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811728/

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