首页 » PHP教程 » phpmysqlgbk编码技巧_JavaEE技能点MySQL编码问题

phpmysqlgbk编码技巧_JavaEE技能点MySQL编码问题

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

利用如下命令可以查看MySQL数据库编码:

l SHOW VARIABLES LIKE 'char%'

phpmysqlgbk编码技巧_JavaEE技能点MySQL编码问题

利用以上命令查看数据库编码,如图1-1所示:

phpmysqlgbk编码技巧_JavaEE技能点MySQL编码问题
(图片来自网络侵删)

图1-1 查看数据库编码

如图1-1所示,数据库的编码是utf8,下面我们来先容个中两项编码:

l character_set_client=utf8:客户端关照数据库做事器它的编码办法:

Ø 客户端即dos窗口发送的数据是gbk编码;

Ø MySQL利用character_set_client指定的编码来解读客户端发送过来的数据,例如编码为UTF8;

Ø 结果:客户端发送过来的数据不是UTF8编码,那么就会涌现乱码;

l character_set_results=utf8:数据库做事器向客户端发送的数据利用utf8编码:

Ø MySQL会以character_set_results指定的编码办法将待发送的数据编码,然后发送给客户端,例如编码为UTF8;

Ø 客户端不该用UTF8来解读,而是利用gbk编码来解读;

Ø 结果:客户端不是利用UTF8来解读,那么就会涌现乱码。

下面我们来试验一下,首先向数据库做事器端发送数据,如图1-2所示:

图1-2 插入数据乱码

图1-2中,在dos窗口下向数据库做事器发送数据,数据中包含中文“张三”,“张三”在dos窗口下是gbk编码,但是数据库做事器利用utf8进行解码,就涌现乱码,因此插入失落败。

办理办法:

l 让客户端发送utf8的数据:在dos窗口下,它的编码便是gbk,很难修正,因此该方法是行不通的;

l 将character_set_client的值修正为gbk:通过命令:set character_set_client=gbk关照数据库做事器客户真个编码是gbk,但是该方法有一个局限性,它只在当前dos窗口中有效,只要退出访问mysql,那么再次登录时这个值须要重新设置。

下面,我们利用第二种办理办法来办理乱码,如图1-3所示:

图1-3 办理插入数据中文乱码问题

图1-3中向student表中插入一条数据,下面我们来查询该表的记录,如图1-4所示:

图1-4 查询student表

图1-4中,查询的数据涌现乱码。

办理办法:

l 让做事器发送gbk编码的数据:利用命令:set character_set_results=gbk将做事器发送数据的编码设置为gbk,该方法有一个局限性,它也只对当前的dos窗口有效,关闭窗口或退出就须要重新设置;

l 让dos窗口利用utf8编码来解读数据:dos窗口的编码是gbk,很难改变,因此该方法是行不通的。

下面,我们利用以上方法中的第二种方法来办理查询数据乱码问题,如图1-5所示:

图1-5 查询student表

以上办理插入数据中文乱码,和查询数据中文乱码的方法都只对当前dos窗口有效,当关闭窗口或退出,再次登录时又须要重新设置。
这种方法不是长久之计,下面给大家先容一个一劳永逸的方法,如下:

在MySQL的安装目录下有一个my.ini文件,如图1-6所示:

图1-6 my.ini文件

打开图1-6所示中的my.ini文件,找到如图1-7所示的代码:

图1-7 my.ini文件内容

将图1-7中,用红线标注的:default-character_set=utf8修正为default-character-set=gbk,如图1-8所示:

‍ 图1-8 修正client编码

图1-8中,修正了default-character-set的编码为gbk,有以下浸染:

l 将character_set_client的值修正为gbk:办理插入数据中文乱码问题;

l 将character_set_results的值修正为gbk:办理查询数据中文乱码问题;

l 将character_set_connection的值修正为gbk。

修正了my.ini文件之后须要重启MySQL做事,然后再次查询数据库编码如图1-9所示:

图1-8 重新启动MySQL做事

现在我们再次查看student表,看张三是否还是乱码,如图1-9所示:

图1-9 查看是否乱码

以上都是办理在dos窗口下操作数据库时的乱码问题,我们安装了SQLyog工具之后,在该工具中利用sql语句操作数据库时,它的编码便是utf8,因此不会涌现乱码问题,我们往后操作数据库也不再利用dos窗口,而是利用SQLyog工具。

标签:

相关文章

佳境大数据,赋能新时代智慧城市建设

随着科技的飞速发展,大数据已成为推动社会发展的重要力量。在我国,智慧城市建设已成为国家战略,而大数据则为智慧城市建设提供了强有力的...

PHP教程 2024-12-15 阅读0 评论0

介绍盘币盈利之路,投资与交易的艺术

随着数字货币市场的蓬勃发展,越来越多的人开始关注盘币投资与交易。盘币,顾名思义,指的是在数字货币市场中具有一定流通性、交易活跃度的...

PHP教程 2024-12-15 阅读0 评论0

介绍怪兽大数据,数据时代的“怪兽”力量

随着互联网的飞速发展,大数据已经渗透到我们生活的方方面面。而在众多数据中,有一类数据因其独特性和价值而被冠以“怪兽”之名——怪兽大...

PHP教程 2024-12-15 阅读0 评论0