我遇到了一个emojis无法正确传输到我的暂存站点的问题。有些表情符号被问号代替,有些没有。主要是影响博客帖子。我不知道是什么原因造成的,希望有人能给我指出解决这个问题的正确方向!可能是数据库中字符编码的问题吗?
例如:这些工作:☀️ ☔️❤️✨ 这些被一个问号所取代:????????并显示此错误:
1366 Incorrect string value: '\xF0\x9F\x98\x83\xF0\x9F...' for column 'text' at row 1
我的sql代码:
CREATE TABLE `posts` (
`id` int(11) UNSIGNED NOT NULL,
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0',
`text` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`status` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0',
`timestamp` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
已运行并尝试此sql代码:
ALTER TABLE posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
ALTER DATABASE test CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
1条答案
按热度按时间yvfmudvl1#
表定义正确。
你想从哪里插入?确保连接使用utf8mb4字符集。从命令行使用--default character set=utf8mb4选项。
见db小提琴