有时候在进行数据库插入数据的时候,会报1366的错误【也不一定是插入啦,因为我暂时也就是因为在插入的时候遇到了这个问题】,下面我来重现一下这个错误【在看的时候,还是要尽量看我截图上的代码,因为我写的时候,可能有些错误,但是在截图中的那肯定是错不了的,要仔细了】
这是什么原因呢?
1.首先我们可以查看一下我们数据库的编码:
show variables like 'char%';查询出来之后,主要看client和result的编码方式 2.编码解释和控制台乱码问题 client = utf8 无论客户端什么编码格式的数据,MySQL都会把它当成utf8的数据 》控制台乱码问题【gbk】 客户端发送的是gbk,但是服务器会把它当做utf8处理,如果是汉字的话,肯定会出现乱码的问题 如何解决乱码问题呢?——》修改MySQL服务器端【client】的接收数据编码格式,将其置为gbk,其代码为:set character_set_client = gbk; 但是有一个弊端就是,如果关闭窗口的话,设置就又恢复到原来的utf8,所以说,并没有长久有效的解决这个问题。 result=utf8 服务器用什么编码格式将发数据发送给客户端 》控制台乱码问题【gbk】 如果是utf8代表的是服务器使用utf8编码格式将数据发送给客户端,但是客户端的编码方式gbk,两者编码 方式不一致 解决:1)将客户端设置为utf8【但是你觉得可行么?反正我觉得不行】 2)让服务器发送gbk的数据:set character_set_results = gbk;但是这也并不是一个长久的办法 归根结底出现乱码问题: 客户端发送的数据编码格式与服务器接收数据的编码格式不一致 解决问题: 让两者一致呗,不然改来改去,你也就不知道你改没改 一般乱码出现问题都是在控制台出现的,然而呢,上面两种用语句来修改的操作只是暂时的,那么,我们如何来长久设置它呢???【哈哈哈,前面讲了那么多,就是为它来铺垫的】 那么 就是 修改MySQL的配置文件 my.ini这个配置文件
如果原来设置的是utf8,将其改为gbk【因为控制台是gbk,只有用gbk的方式来接收,才不会出现乱码问题】 将default-character-set=gbk后将影响三个字段 :client results connection ,配置成功之后保存,重启MySQL服务器
其实,这个在这和里面会报这个编码出错的问题啦,其实如果说你只是练习的话,你可以用拼音替代一下也是可以的,也就没有这个编码格式的错误了。