mysql:设置字符集utf8mb4 支持emoji字符

为什么要把数据库的字符集设置成utf8mb4呢?以前一直用的都是utf8啊?
答案在这里:utf8适用于不使用移动设备的互联网交互,utf8mb4适用于当前的移动设备互联网开发,因为移动设备中常常会有表情符号(emoji)的存储,它占用4个字节的存储空间,而utf8是3个字节,这样,用3个字节去存储4个字节的东西,很明显是存不下的,会报错,所以要用utf8mb4,并且utf8mb4是兼容utf8的,那么,就没有理由不用utf8mb4字符集了。

介绍设置MySQL的字符集:

1 在ubuntu安装mysql (密码自己设置)

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

2 进入mysql,查看信息

/etc/mysql/mysql.conf.d/mysqld.cnf

可以看到我的mysql版本是5.7的,utf8mb4有一个使用限制,mysql版本必须是5.5以上,大家需要注意,我目前用的ubuntu系统是16.04的。当前mysql的字符集配置如上表,我们的目的是更改成utf8mb4。

3 找到mysql的配置文件,可用命令

sudo find / -name my.cnf

4 修改配置文件

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=‘SET NAMES utf8mb4‘

或直接执行:


ALTER table apps modify  name  varchar(2000) character set utf8mb4 collate utf8mb4_unicode_ci;
ALTER table apps charset=utf8mb4;
set names utf8mb4

时间: 2024-12-11 17:39:46

mysql:设置字符集utf8mb4 支持emoji字符的相关文章

MySQL utf8mb4 字符集:支持 emoji 表情符号

㈠ 序言 为了应对无线互联网的机遇和挑战.避免 emoji 表情符号带来的问题. 涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集 这必须要作为移动互联网行业的一个技术选型的要点 ㈡ 限制 需要 >= MySQL 5.5.3版本.从库也必须是5.5的了.低版本不支持这个字符集.复制报错 ㈢ 简要步骤 以下是一个未升级到 5.5.3 的配置步骤: ① 备份数据库 ② 升级 MySQL Server 到 v5.5.3+ ③ 修改 database.table和column字符

Mysql latin1也支持emoji字符的错觉分析

起初发现了如下的现象: mysql> show variables like 'character%'; +--------------------------+---------------------------------------+ | Variable_name            | Value                                 | +--------------------------+-------------------------------

mysql设置字符集

一般情况下,防止程序交互过程中出现乱码情况,所以前后台都会同意编码格式. 因为UTF-8编码方式国际通用,所以我在mysql中设置编码格式UTF-8. 先查看mysql编码格式. show variables like 'character\_set\_%'; 发现各种不一样. ok!现在开始配置: 任务管理器,停掉mysql服务. 在mysql安装目录下找my.ini文件,没有的话新建my.ini文件,并将my-default.ini文件内容复制到my.ini文件中. 1.在配置文件my.in

mysql选择字符集utf8mb4

如果你在使用MySQL或MariaDB,不要用"utf8"编码,改用"utf8mb4". 这里(https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4)提供了一个指南用于将现有数据库的字符编码从"utf8"转成"utf8mb4". ref:http://www.infoq.com/cn/articles/in-mysql-never-use-utf8-use-u

MySQL设置字符集CHARACTER SET

本文地址:http://www.cnblogs.com/yhLinux/p/4036506.html 在 my.cnf 配置文件中设置相关选项,改变为相应的character set. 设置数据库编码(sudo vi /etc/mysql/my.cnf): [client] default-character-set = utf8 [mysqld] character-set-server = utf8 collation-server = utf8_general_ci 参考资料: 14.1.

MySQL 设置字符集为utf-8

1.在[client]字段里加入default-character-set=utf8,如下:[client]port = 3306socket = /var/lib/mysql/mysql.sockdefault-character-set=utf82.在[mysqld]字段里加入character-set-server=utf8,如下:[mysqld]port = 3306socket = /var/lib/mysql/mysql.sockcharacter-set-server=utf83.

mysql设置字符 UTF-8

Windows版MySQL设置字符集全部为utf8的方式 MySQL安装目录下的my.ini文件 [client]节点 default-character-set=utf8    (增加) [mysql]节点 default-character-set=utf8    (修改) [mysqld]节点 default-character-set=utf8    (修改) character_set_server=utf8    (增加) 修改完毕后使用 net stop mysql net sta

微信nickname乱码(emoji)及mysql编码格式设置(utf8mb4)解决的过程

转:https://segmentfault.com/a/1190000004594385 项目中涉及保存微信的nickname,之前一直正常使用,但是突然遇到一个之前没有遇到的问题.经过调试发现错误如下: Incorrect string value: '\xF0\x9F\x99\x88\xF0\x9F...' for column 'nickname' at row 1 经过仔细查看发现可以获得nickname的数据,但是无法保存到mysql数据库,查看用户的微信发现在nickname中使用

mysql/Java服务端对emoji的支持

如果UTF8字符集且是Java服务器的话,当存储含有emoji表情时,会抛出类似如下异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1       at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)       at com.mysql.jdbc.MysqlIO.checkEr