MySQL乱码问题以及utf8mb4字符集
来源:互联网 发布:淘宝卖家互刷平台 编辑:程序博客网 时间:2024/05/17 06:44
http://www.tuicool.com/articles/zAnEV3
乱码
推荐大家看 深入MySQL字符集设置 ,区分检查client端、server端的编码;最简单暴力的方式,是在所有的环节都显式明确的指定相同的编码。
比如使用python的MySQLdb连接MySQL时默认的charset是latin1,需要自己指定charset=’utf8′,即使是在服务器端的init-connect=’SET NAMES utf8′,MySQLdb也会使用latin1覆盖该选项;可以参照这篇文章;
emoji表情与utf8mb4
关于emoji表情的话mysql的utf8是不支持,需要修改设置为utf8mb4,才能支持, 详细emoji表情与utf8mb4的关系 。
MYSQL 5.5 之前, UTF8 编码只支持1-3个字节,只支持BMP这部分的unicode编码区, BMP是从哪到哪,到 http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters 这里看,基本就是0000~FFFF这一区。 从MYSQL5.5开始,可支持4个字节UTF编码utf8mb4,一个字符最多能有4字节,所以能支持更多的字符集。
utf8mb4 is a superset of utf8
utf8mb4兼容utf8,且比utf8能表示更多的字符。
修改方法
服务器端
修改数据库配置文件/etc/my.cnf
character-set-server=utf8mb4
collation_server=utf8mb4_unicode_ci
重启MySQL(按照官方文档,这两个选项都是可以动态设置的,但是实际的经验是Server必须重启一下)
已有的表修改编码为utf8mb4
ALTER TABLE tbl_name
CONVERT TO CHARACTER SET charset_name
;
使用下面这个语句只是修改了表的default编码
ALTER TABLE etape_prospection CHARSET=utf8;
客户端
jdbc的连接字符串不支持utf8mb4,这个 这种方式 来解决的,如果服务器端设置了character_set_server=utf8mb4,则客户端会自动将传过去的utf-8视作utf8mb4。
- Connector/J did not support
utf8mb4
for servers 5.5.2 and newer.Connector/J now auto-detects servers configured with
character_set_server=utf8mb4
or treats the Java encodingutf-8
passed usingcharacterEncoding=...
asutf8mb4
in theSET NAMES=
calls it makes when establishing the connection. (Bug #54175)
其他的client端,比如php、python需要看下client是否支持,如果不能在连接字符串中指定的话,可以在获取连接之后,执行”set names utf8mb4″来解决这个问题;
因为utf8mb4是utf8的超集,理论上即使client修改字符集为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。
- MySQL乱码问题以及utf8mb4字符集
- MySQL乱码问题以及utf8mb4字符集
- MySQL乱码问题以及utf8mb4字符集
- MySQL的字符集以及中文乱码问题
- MySQL utf8mb4 字符集
- mysql设置字符集utf8mb4
- MySQL utf8mb4 字符集
- [MySQL] MySQL使用utf8mb4字符集
- mysql乱码:字符集问题
- mysql 字符集乱码问题
- mysql字符集乱码问题
- mysql 修改字符集为utf8mb4
- mysql : utf8mb4 的问题
- mysql 5.5 升级 与 MySQL utf8mb4 字符集
- 解决mysql字符集乱码问题
- mysql字符集及乱码问题
- mysql字符集及乱码问题
- php mysql字符集乱码问题
- Android初体验1
- LeetCode 474 Ones and Zeroes 题解
- 冒泡排序
- 如何自学思维导图
- #741 – 使用触摸事件移动控件(Using Touch Manipulation Events to Translate an Element)
- MySQL乱码问题以及utf8mb4字符集
- 【easyui】treeGrid显示树形结构
- pt-online-schema-change 使用介绍
- 使用tcpdump抓取Android系统手机数据包
- 生物进化思想与程序设计思想的比较
- myecplise整体环境配置
- scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld
- Kafka相关技术文档
- FTP命令大全