MySQL数据库 utf-8与utf8mb4】的更多相关文章

原文:http://blog.csdn.net/woslx/article/details/49685111 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’…
参考于今日头条上Java芋道源码的-----记住:永远不要在 MySQL 中使用 UTF-8 字符集选择 MySQL 的 utf8 实际上不是真正的 UTF-8.utf8 只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节. MySQL 一直没有修复这个 bug,他们在 2010 年发布了一个叫作 utf8mb4 的字符集,绕过了这个问题.当然,他们并没有对新的字符集广而告之(可能是因为这个 bug 让他们觉得很尴尬),以致于现在网络上仍然在建议开发者使用 utf8,但这些…
场景描述: 项目采用了分库模式进行不同业务的开发,在共有的功能模块进行设计的时候采用主从库,或者各分库之中存在同样的库表结构,在使用过程中做库表同步的时候一定要保证库表所在的数据库的字符集和编码格式是保持一致的.否则完成库表同步或者迁移之后会造成查询问题:各独立库表查询数据都没有问题,但是在等值查询或者关联查询的时候会出现查询数据为空的现象:骚操作:在A库中把表建好了,copy到B库中,导致库表的排序规则不一致大小写匹配的时候出现问题. 逻辑描述: 在数据从app入库的时候存储的是大写的字符co…
对于mysql 5.5 而言,如果不设定字符集,mysql默认的字符集是 latin1 拉丁文字符集: 为了统一管理和应用开发的方便,一般都会统一将操作系统,客户端,数据库各方面的字符集都设置为 utf8 字符集,即能满足各种字符应用,又能统一字符集,避免各种乱码问题.     但随着各种业务的进一步发展,除了各个国家的本身语言字符,经常也会有一些表情符号出现在应用程序中,而在mysql 5.5 之前,UTF-8编码只支持1-3个字节,支持BMP这部分的Unicode编码区:从MySQL 5.5…
本文转自:http://blog.itpub.net/26230597/viewspace-1243233/前言:手机app应用评论的时候,恢复表情符号,提示失败. 1,查看tomcat后台日志,核心报错信息如下:   Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1 at com.mysql.jdbc.SQLE…
今天老左在准备迁移公司一个客户的网站到另外一台服务器中,根据正常的操作备份最新的网页文件和导出数据库,然后在新服务器中创建站点和数据库wget迁移进去解压.因为数据库比较小,所以直接用PHPMyAdmin工具在线导入,但是看到有错误提示"#1115 - Unknown character set: 'utf8mb4'". 第一.错误提示 看来是因为数据库版本的问题导致的,我看到之前网站MYSQL5.1版本,现在是MYSQL5.5版本,从5.5开始采用的是utf8mb4,而我们的数据库版…
  错误提示:导入MySQL数据库提示"Unknown character set: 'utf8mb4'"错误   分析: 看来是因为数据库版本的问题导致的,之前网站MYSQL5.5版本,现在是MYSQL5.1版本. 查阅资料,了解到 MySQL 原字符集为utf8,从5.5开始采用的是utf8mb4.   解决方法: 打开数据库备份文件web.sql,然后将文件开头的 SET NAMES utf8mb4 修改为 SET NAMES utf8 即可!重新导入成功!   <wiz_…
在项目中遇到有人存emoji表情,出现如下错误: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 解决方法: 第一步: 修改mysql配置文件my.cnf(windows为my.ini,linux为my.cnf) my.cnf一般在etc/mysql/my.cnf位置.找到后请在以下三部分里添加如下内容: [client] default-character-…
CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 在tigase中,发送消息有文本的形式,比如发送emoji表情, 编码必须采用 utf8mb4 , utf8mb4 is a utf8 character set, which was added to MySQL in version 5.3.3, that fully supports unicode. utf8mb4是…
最近看了一下KIGG框架,发现在用EF + MYSQL数据库时,数据出现了乱码,用工具(Navicat )查看一下表category的结构发现 KIGG 数据库的默认情况是用latin1编码的(DEFAULT CHARSET=latin1), 如下: create database ssi default character set utf8; CREATE TABLE `t_user` ( `) NOT NULL AUTO_INCREMENT, `) NOT NULL, `USER_PASSW…