我的MVC网站上有一个表单,允许用户输入表情符号作为他们提交的文本的一部分。
我的MySQL 5.6数据库主要设置为UTF8,但在接受此数据的表上,我已将字段和表设置为:
字符集:utf8mb4
整理:utf8mb4_unicode_ci
但是,当我插入数据时,我可以在进入表格时看到它将表情符号字符编码为?????
。所有其他标准文本保持不变。
我错过了什么吗?我已经看过这样的文章,我曾用它来指导我:http://blog.arkency.com/2015/05/how-to-store-emoji-in-a-rails-app-with-a-mysql-database/
任何帮助将不胜感激!
由于
答案 0 :(得分:0)
ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4;
首先将连接编码设置为utf8mb4,然后将数据库的字符集和排序规则更改为: -
SET NAMES utf8mb4;
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
接下来我们需要将相关表转换为utf8mb4 / utf8mb4_unicode_ci(您需要为每个表运行此命令): -
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
(将table_name替换为数据库表的名称。)
最后,我们需要更新列的字符集和排序规则: -
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(140) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;