如何在mysql中存取utf8mb4编码的字符
2014-06-23 23:34
176 查看
utf8编码可以支持一到4字节的字符编码,在mysql用我们一般使用utf8编码来处理字符类型,通常情况下都没有问题,但遇到4字节编码的字符,在数据存取的时候就会有问题了。
通常我们可能会得到一个错误或者警告:Incorrect string value: '\xF0\x9D\x8C\x86' for column ...
Mysql 从5.5.3版本开始支持4字节的utf8编码,如果你的Mysql数据库是5.5.3+,按照以下步骤就能解决这个问题,如果版本低于5.5.3,是不是可以考虑升级数据库版本呢?
1、在修改数据库编码前先对数据库备份(虽然utf8mb4兼容utf8,但有备无患)
2、修改数据库的编码、表的编码、列的编码为utf8mb4
3、在Mysql数据库配置文件(my.ini)中加入如下设置
重新启动Mysql数据库,确认设置生效
4、在获取数据库连接的时候执行sql:set names utf8mb4;我使用的是alibaba的开源数据库连接池程序,在配置文件中增加一行如下配置
更多详细内容参考:http://mathiasbynens.be/notes/mysql-utf8mb4
alibaba开源数据库连接池:https://github.com/alibaba/druid
通常我们可能会得到一个错误或者警告:Incorrect string value: '\xF0\x9D\x8C\x86' for column ...
Mysql 从5.5.3版本开始支持4字节的utf8编码,如果你的Mysql数据库是5.5.3+,按照以下步骤就能解决这个问题,如果版本低于5.5.3,是不是可以考虑升级数据库版本呢?
1、在修改数据库编码前先对数据库备份(虽然utf8mb4兼容utf8,但有备无患)
2、修改数据库的编码、表的编码、列的编码为utf8mb4
3、在Mysql数据库配置文件(my.ini)中加入如下设置
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 //这行最主要 collation-server = utf8mb4_unicode_ci
重新启动Mysql数据库,确认设置生效
mysql> show VARIABLES like '%char%'; +--------------------------+----------------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /home/app/mysql-5.5.33/share/charsets/ | +--------------------------+----------------------------------------+ 8 rows in set
4、在获取数据库连接的时候执行sql:set names utf8mb4;我使用的是alibaba的开源数据库连接池程序,在配置文件中增加一行如下配置
<property name="connectionInitSqls" value="set names utf8mb4;" />重新启动应用程序,问题解决
更多详细内容参考:http://mathiasbynens.be/notes/mysql-utf8mb4
alibaba开源数据库连接池:https://github.com/alibaba/druid
相关文章推荐
- 如何修改mysql 5.6.24解压缩版(免安装版或zip版)字符编码
- mysql存储特殊字符问题,设置编码utf8mb4
- MySQL字符编码的讨论:如何处理emoji等4字节的Unicode字符 - utf8mb4 vs. utf8 Collations
- windows mysql设置支持utf8mb4字符编码
- 如何设置Eclipse工作空间的缺省字符编码?
- mysql字符编码设置,mysql中文问题解决方案
- MySQL如何存储图片?---一个向数据库存取image文件的jsp程序
- mysql当中如何查看当前表格的编码!--小技巧
- IIS如何接收ServerXMLHTTP传过来的编码字符?
- 使用java语言操作,如何来实现MySQL中Blob字段的存取
- vs如何向main函数传参数、设置字符编码、设置OpenMp等
- IIS如何接收ServerXMLHTTP传过来的编码字符?
- 静态页面如何接收参数以及解决特殊字符的编码问题
- MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码)
- 如何将信息资源文件(.properties)中的中文字符改为ISO-8859-1编码
- UTF8编码格式的中英文字符如何换行
- 如何更改mysql编码
- IIS如何接收ServerXMLHTTP传过来的编码字符?
- source-insight中文:utf-8编码的中文字符在source in sight如何正常显示
- 如何设置Eclipse工作空间的缺省字符编码