微信emoji表情编码 、MySQL 存储 emoji 表情符号字符集

1、把 PHP 连接 MySQL 的字符集 由 utf8 改为 utf8mb4;
ThinkPHP框架中,改下 配置文件 /ThinkPHP/Conf/convention.php 的 DB_CHARSET 为 utf8mb4 (默认为 utf8)

2、把 聊天记录表的 聊天内容字段的 字符集改为 utf8mb4_general_ci;

原文地址:https://www.cnblogs.com/gaocy/p/9559410.html

时间: 2024-08-01 02:35:32

微信emoji表情编码 、MySQL 存储 emoji 表情符号字符集的相关文章

emoji 表情与MySQL编码问题

Emoji,这些能够表达情感的小卡通图像已经成为现代交流中不可或缺的一部分,以至于emoji这一单词已经在2015年被正式收入韦氏词典和牛津词典.说到emoji的诞生,这里还有一个很有趣的小故事:1999年前后,日本一个名叫栗田穰崇的年轻人,和许多直男一样, 给女友发的短信经常会被误解.比如,"知道了"被解读成"生气了"."不耐烦了",随后引发冷战. 于是少年栗田想:"如果能在文字里插入一些表情符号来表达感情,大家应该会需要吧!&quo

django,mysql存储emoji表情,utf8mb4

今天在做后台的时候发现一个错误: Incorrect string value: '\\xF0\\x9F\\x90\\xA8' for column 'signature' at row 1 发现是参数里面是一个iOS的表情,也就是系统自带的emoji表情. 后台用的是django 1.6,数据库用的是Mysql 5.5.22,缓存用的是redis. 上网了解了一下emoji表情,原来一般的字符包括中文用utf8的话,mysql是用3个字节去存储的,而emoji表情要用4个字节的utf8,也就是

mysql 存储 emoji报错( Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F)的解决方案

1.报错原因: mysql utf-8 编码储存的是 2-3个的字节,而emoji则是4个字节. 2.解决办法: 修改mysql的配置文件,windows下的为my.ini(linux下的为my.cnf),修改的内容都一样. [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server

mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】

utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 at com.mysql.jdbc.SQLError.createSQLException(

Mysql存储emoji表情的两种方式

最近在做数据迁移,原先有一个字段的类型为clob,迁移后的字段类型为varchar,blob转化成字符串数据后,发现有emoji表情存在,导致数据迁移失败.失败的原因是mysql数据库中设置的utf-8类型是3个字节,而emoji表情的utf-8是4个字节,所以无法传入. 要使mysql能存储emoji表情,需要数据库的版本在5.5以上. 为了解决问题,主要有两种方式: 第一种方式是修改字段的编码. 第二种方式是修改配置文件. 第一种方式:亲测可用 1)修改对应表字段的编码类型 ALTER TA

mysql存储emoji表情

微信获取的用户昵称nickname中带有emoji表情,转换成字符码后是这种形式“\xF0\x9F\x91\x8D\xE6\x94...”, 直接保存可能出现以下错误 Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x84' for column 'review' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:

php解决微信开发中用户昵称中的特殊字符与emoji表情写入mysql错误的问题

解决办法:将3个字节的特殊字符与emoji表情替换掉即可. $nickname = preg_replace('/xE0[x80-x9F][x80-xBF]'.'|xED[xA0-xBF][x80-xBF]/S','?', $nickname ); $nickname = preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $nickname);

mysql存储emoji问题

前一段时间,项目中需要在数据库中存储emoji,由于编码格式不对,直接导致数据库报错,后来修改mysql的编码,就解决了 emoji符号实际上是文本,并不是图片,它们仅仅显示为图片 在mysql5.5.3或更高的版本才支持 确定数据库支持存储表情后,可以修改数据库的默认编码,这样以后再建数据库的话,就不用考虑存emoji这个问题了 在mysql 的配置文件 my.cnf 或 my.ini 配置文件中修改如下: [client] default-character-set = utf8mb4 [m

让MySql支持Emoji表情(MySQL中4字节utf8字符保存方法)

手机端插入Emoji表情,保存到数据库时报错: Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x84' for column 'review' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.jav

关于用 MySQL 存储 Emoji

http://www.v2ex.com/t/137724 如果你希望让你的网站或者 App 支持 Emoji,那么在初次设置 MySQL 时,有一些细节你需要知道. Emoji Emoji 字符的特殊之处是,在存储时,需要用到 4 个字节.而 MySQL 中常见的 utf8 字符集的 utf8_general_ci 这个 collate 最大只支持 3 个字节.所以为了能够存储 Emoji,你需要改用 utf8mb4 字符集. 在创建表时,用类似这样的语句: CREATE TABLE `tbl`