码迷,mamicode.com
首页 > 数据库 > 详细

mysql与emoji和特殊字符

时间:2018-03-08 00:06:04      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:mysql   问题   特殊字符   图标   lam   value   div   with   计时   

从微信登陆已经是非常普遍的登陆方式了,在数据库设计时也应该考虑相关性。一般存储open_id、图标、昵称就够了。其中昵称要特殊注意,否则可能就像这样:

mysql : 1366 Incorrect string value 吧啦吧啦……

这是因为微信的昵称用了特殊字符,比如UNICODE的emoji扩展区。mysql的utf8 default是无法存储的,位数不足。参考:附链接1

对应字段应修改为utf8mb4,存储过程的参数也应该修改(附链接2):

CREATE PROCEDURE `emoji`(text varchar(20) CHARSET utf8mb4)
BEGIN
    SELECT text;
END

 

测试这个问题可以用:

select unhex(F09F8D83)

INSERT tb(`text`) VALUES(unhex(F09F8D83))

 

 

链接1:http://www.cnblogs.com/lampbrotherIT/p/5794742.html

链接2:https://stackoverflow.com/questions/17650662/creating-a-stored-procedure-with-utf8-strings

mysql与emoji和特殊字符

标签:mysql   问题   特殊字符   图标   lam   value   div   with   计时   

原文地址:https://www.cnblogs.com/fyter/p/mysql_emoji.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!