手机版

JSP MySQL插入数据时中文乱码的解决方案

时间:2021-09-13 来源:互联网 编辑:宝哥软件园 浏览:

在MySQL数据库中插入带有中文的数据表单时,如插入员工值(null,'张三','女',' 1995-10-08 ',' 2015-11-12 ',' sales ',2000,'是个好员工!');如果出现乱码字符,可以使用语句show变量,如“character %”;查看当前数据库的相关编码集。

从上图可以看出,MySQL在六个地方使用了字符集,分别是:客户端、连接、数据库、结果、服务器和系统。其中,与服务器端有关:数据库、服务器、系统(永远不能修改,即UTF-8);客户端相关:连接、客户端、结果。

客户端是客户端使用的字符集。连接设置用于连接数据库的字符集的类型。如果程序没有指定用于连接数据库的字符集类型,将根据服务器端的默认字符集进行设置。数据库是数据库服务器中的库使用的字符集。如果在构建数据库时未指定,将使用安装服务器时指定的字符集。Results是将数据库返回给客户端时使用的字符集。如果未指定,则使用服务器的默认字符集。服务器是安装服务器时指定的默认字符集。系统是为数据库系统使用的字符集设置的。

了解了以上信息,我们再来分析代码乱码的原因。问题出在当前的CMD客户端窗口,因为当前的CMD客户端输入采用GBK编码,而数据库的编码格式是UTF-8,导致代码乱码。但是当前CMD客户端的编码格式不能修改,所以只能修改连接、客户端和结果的编码集,通知服务器当前插入的数据采用GBK编码。服务器的数据库虽然采用了UTF-8编码,但可以识别通知服务器的GBK编码数据,并自动转换成UTF-8存储。您可以使用以下语句快速设置客户端相关的编码集:set names gbk

设置完成后,插入数据或显示数据的乱码问题就可以解决了,但我们很快就会发现,这种形式的设置只会在当前窗口有效,当窗口关闭,CMD客户端重新打开时,乱码问题又会出现;那么,如何一劳永逸地设置呢?MySQL安装目录中有一个my.ini配置文件。通过修改这个配置文件,可以一劳永逸地解决乱码问题。在这个配置文件中,【mysql】与客户端配置相关,【mysqld】与服务器配置相关。默认配置如下:

[MySQL]默认字符集=utf8

[mysqld]字符集-服务器=utf8。此时,您只需要将默认代码default-character-set=utf8更改为default-character-set=gbk,然后重新启动MySQL服务。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:JSP MySQL插入数据时中文乱码的解决方案是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。