MySQL抛出Incorrect string value异常分析_Mysql

之前还以为从上至下统一用上UTF-8就高枕无忧了,哪知道今天在抓取新浪微博的数据的时候还是遇到字符的异常。
从新浪微博抓到的数据在入库的时候抛出异常:
Incorrect string value: '\xF0\x90\x8D\x83\xF0\x90...'
发现导致异常的字符不是繁体而是某种佛经文字。。。额滴神。。。但是按道理UTF-8应该能支持才对啊,他不是万能的么?
原来问题出在mysql上,mysql如果设置编码集为utf8那么它最多只能支持到3个字节的UTF-8编码,而4个字节的UTF-8字符还是存在的,这样一来如果你建表的时候用的utf8字符集出异常就理所当然了。
解决方法很简单,修改字段或者表的字符集为utf8mb4。
比较蛋疼的是,字符集utf8mb4在mysql 5.5.3之后才支持。

时间: 2024-12-31 08:27:33

MySQL抛出Incorrect string value异常分析_Mysql的相关文章

c#-aspnet 抛出文件不能访问异常

问题描述 aspnet 抛出文件不能访问异常 我的asp.net 应用程序,开始先部署到远程的测试服务器,一切正常,但是当我发布到产品服务器的时候,抛出了文件不能访问的异常,弄了很长时间,仍然不能解决,谁能帮助我? The process cannot access the file 'xxx.pdf' because it is being used by another process 这个PDF是程序自己生成的临时文件,不可能有其它程序使用,有很多帖子说是文件流没有关闭,如果没关闭,为什么

视频-android mediaPlayer播放了1.4G的MP4 抛出 传输量过大异常

问题描述 android mediaPlayer播放了1.4G的MP4 抛出 传输量过大异常 package com.example.zyc.surfaceview; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os

mysql中文提示Incorrect string value: xB1xB1xBExA9

选项default-charaset-set=utf8; 然后创建一个数据表 create table a_table(b varchar(255) not null); insert into a_table values('北京'); 这个时候插入的是中文,系统会报告错误:Incorrect string value: 'xB1xB1xBExA9' for column 'b' at; 这个不能插入中文.如果该语句写在了一个文本文件中进行批处理操作,保存的编码是默认的话也会出现这种的错误提示

MySQL 5.6 中 TIMESTAMP 的变化分析_Mysql

在MySQL 5.6.6之前,TIMESTAMP的默认行为: ■TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL.(而其他数据类型,如果没有显示声明为NOT NULL,则允许NULL值.)设置TIMESTAMP的列值为NULL,会自动存储为当前timestamp. ■表中的第一个TIMESTAMP列,如果没有声明NULL属性.DEFAULT或者 ON UPDATE,会自动分配 DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIME

hibernate 自定义数据类型 在实现序列化接口后还是抛出不能反序列化的异常

问题描述 异常:org.hibernate.type.SerializationException:couldnotdeserializeatorg.hibernate.util.SerializationHelper.doDeserialize(SerializationHelper.java:262)atorg.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:306)atorg.hibernate

这个程序不知为什么会抛出socket is closed异常,

问题描述 publicclasssocket{Socketsocket;publicsocket(){try{socket=newSocket("127.0.0.1",8834);PrintWriterwriter=newPrintWriter(socket.getOutputStream());writer.write("七上八下.mp3");DataInputStreamdis=newDataInputStream(socket.getInputStream()

Mysql错误1366 - Incorrect integer value解决方法_Mysql

由于这个数据库服务器存放的数据库比较多且都是小数据库,所以最初的时候是运行在windows服务器上的.前一段时间由于机房服务器要做调整,于是我便在一个夜深人静的夜晚对数据库进行的迁移及前台应用程序进行了调整,调整结束后测试应用均可以正常访问后我便离去了. 周一刚上班就收到反馈:网站后台发布文章报如下错误: 复制代码 代码如下: insert into doc_main (title,typeid,uptime,intro,ifhot,imgurl1,doctype,fileurl1,shunxu

mysql+Spring数据库隔离级别与性能分析_Mysql

这里以mysql为例,先明确以下几个问题: 一.一般项目如果不自己配置事务的话,一般默认的是autocommit,即执行完一个操作后自动commit,提交事务. (注:事务是绑定在数据库操作上的,也就是当程序执行(statement.excute等操作)转而到数据库层面上的时候,事务才开始发生)当然spring可以将几个数据库操作动作绑在一个事务中,这样就需要介绍下spring事务配置方法,下面介绍的是常用方法,其他方法网上有很多.spring提供了很多事务配置的策略,很方便,简要介绍一下: 复

MySQL中slave监控的延迟情况分析_Mysql

在MySQL复制环境中,我们通常只根据 Seconds_Behind_Master 的值来判断SLAVE的延迟.这么做大部分情况下尚可接受,但并不够准确,而应该考虑更多因素. 首先,我们先看下SLAVE的状态: 复制代码 代码如下: yejr@imysql.com [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting