今天在学习mysql 处理大数据对象—处理CLOB数据,在把一个大文本写入到数据表的字段时,发现一条错误:
Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x90</...' for……
在网上找资料学习后得知这是mysql的编码问题,我的默认用了utf8编码,网上解决方法是把配置文件my.ini中的两个utf8都改成了gbk,但之后试过很多次仍无法解决。
(找出 my.ini, 打开后 ctrl+ f 找出所有的utf8,全改成gbk)
最后找到一个贴子说就算改了配置文件的两个characterset,还有一个是没改到的。在命令行下进入mysql,输入status;
mysql> status;
就会发现 Db characterset: utf8 这一行,要把这个 utf8 改成 gbk ,输入命令:
mysql> alter database mydatabase character set gbk;
这时再输入status发现全变成gbk了,重启mysql后再运行插入,就没有问题了。
还是新手,虽然自己解决了问题,但原理还是不太懂,仍需努力学习。