utf8与utf8md4

本文探讨了MySQL中utf8字符集与utf8mb4字符集的区别,特别是对于4字节UTF-8字符的支持情况。实验结果显示,在进行插入和显示操作时,只有当数据库连接和表字段同时设置为utf8mb4时,才能正确处理4字节的UTF-8字符。
mysql的utf8字符集最多只支持3字节表示的字符,对于4字节的utf8字符需要用utf8mb4代替。
即:修改数据库连接和表相应字段为utf8mb4


插入数据时:

数据库连接
表字段
结果
utf8
utf8
失败
utf8mb4
utf8
失败
utf8
utf8mb4
失败
utf8mb4
utf8mb4
成功

显示数据时:

数据库连接
表字段
结果
utf8
utf8
失败
utf8mb4 
utf8
失败
utf8
utf8mb4 
失败
utf8mb4 
utf8mb4 
成功


如果直接使用mysql命令行插入4字节字符,无论utf8还是utf8mb4都能成功插入并显示在命令行中。
在mysql命令行插入四字符utf8时,如果列字段是utf8,无论数据库连接是utf8还是utf8mb4,得到的都是乱码,再把表字段改为utf8mb4也是乱码,貌似只能删掉重插了。(mysql命令行中显示的都还是正常的)

mysql版本5.5+
数据库字符集通过set names设置/mysqli_set_charset()
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值