前言

之前一直认为UTF-8是万能的字符集问题解决方案,直到最近遇到这个问题。最近在做新浪微博的爬虫, 在存库的时候发现只要保持emoji表情,就回抛出以下异常:

Incorrect string value: '\xF0\x90\x8D\x83\xF0\x90...'

所以在此我们像utf8的数据表插入数据就会报出Incorrect string value这个错误.

Google一下很容易就找到了解决方案, 具体解决办法是如下:

一、修改数据表的字符集为utf8mb4

这点很简单, 修改语句网上找一大堆, 不过建议重新建表, 使用 mysqldump -uusername -ppassword database_name table_name > table.sql 备份相应数据表, 并修改其中的建表语句的字符集为 utf8mb4 即可, 然后 mysql -uusername -ppassword database_name < table.sql 重新导入sql即可完成修改字符集操作.

二、MySQL数据库版本要5.5.3及以上

网络上所有的文章都说明要MySQL 5.5.3以上的版本才支持utf8mb4, 不过我使用的数据库版本为5.5.18, 最终仍能解决问题, 所以同学们不要急着找运维哥哥升级数据库先, 先试试能不能自己解决问题.

三、修改数据库配置文件/etc/my.cnf并重启mysql服务

主要是修改数据库的默认字符集, 以及连接, 查询的字符集, [Mysql支持emoji 表情符号 升级编码为UTF8MB4][1] 这篇文章有详细的设置方法, [深入Mysql字符集设置][2] 这篇文章有其中设置的各个字符集的作用, 大家可以科普下.

四、升级MySQL Connector到5.1.21及以上

更多相关文章

  1. android中HttpURLConnection调用getResponseCode()时崩溃 解决方
  2. Android空引用问题的解决方法——on a null object reference
  3. android中字符替换成表情
  4. android读取assets大于1M文件的解决方法
  5. 几个Android小错误解决方法
  6. CheckBox android:paddingLeft 不兼容问题解决方法
  7. android表情Gson EditText TextView
  8. Android(安卓)-- EditText插入表情
  9. 在Android中支持表情

随机推荐

  1. P2P网贷信用评分项目分享(一)
  2. TensorFlow验证码识别
  3. 深度学习GPU环境Ubuntu16.04+GTX1080+CUD
  4. 如何删除 JavaScript 数组中的虚值[每日
  5. 10年漫威,到底有多少角色。
  6. Docker部署pinpoint2.2
  7. 中文分词原理及常用Python中文分词库介绍
  8. 轻松获得海量稳定代理!ADSL拨号代理的搭建
  9. 183条地铁线路,3034个地铁站,发现中国地铁
  10. App爬虫神器mitmproxy和mitmdump的使用