我在我的 Facebook 帖子项目中使用表情符号字符。一些表情符号字符保存得很好,但有些字符像 (??) 一样保存到 mysql 数据库中。我的数据库表默认排序规则是 utf8mb4_unicode_ci 。有什么方法可以将所有表情符号保存到数据库中。
我在 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';
我是一名优秀的程序员,十分优秀!