如何将所有 facebook 表情符号存储在 mysql 数据库中

how to store all facebook emoji in mysql database

我在我的 facebook 项目中使用表情符号 post。一些表情符号字符保存良好,但有些字符保存为 (??) 到 mysql 数据库中。我的数据库 table 默认排序规则是 utf8mb4_unicode_ci 。 有什么办法可以把所有的emoji都存入数据库吗

我在 Cakephp3 工作。 我的数据库结构是:

'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'username' => '******',
            'password' => '******',
            'database' => '******',
            'encoding' => 'utf8mb4',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,
            'url' => env('DATABASE_URL', null),
        ],

在处理诸如此类的异常字符时,我遇到了与此类似的问题。问题不在于数据库,而在于我如何连接到数据库。由于您没有提供任何代码,我无法提供任何具体建议,但请检查您的数据库连接字符串并确保其使用 mb4 版本的 utf8。否则响应将不包含这些字符。

如果您使用的是 PDO,那么您的数据库字符串将如下所示。

$db = 'mysql:host=example.com;dbname=testdb;port=1234;charset=utf8mb4';