MySQL和ASP MVC - 存储表情符号字符

时间:2016-11-24 16:56:21

标签: mysql asp.net-mvc character-encoding

我的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/

任何帮助将不胜感激!

由于

1 个答案:

答案 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;

Based on linky from here, credit to my carter