2.查看当前电脑使用的字符集:
打开电脑黑窗口(CMD),接着点击鼠标右键,然后选择属性,并查看“选项”这一栏。通过上图可以知道:CMD中输入文字使用的字符编码是GBK(即电脑客户端字符集是GBK)。
客户端client输入的字符,都是采用GBK编码的。mysql服务器存储的字符又是UTF8编码的。
-- 查看数据库支持的所有的字符集(这句命令自己下去操作)。
mysql> show character set;
-- 查看系统当前状态,里面可以看到部分字符集设置。
mysql> status;
-- 查看系统字符集 设置,包括所有的字符集设置
mysql> show variables like '%char%';
mysql> #要想不乱码,需要指定客户端的编码,让连接器不理解错误。
mysql> #这样就不会存入错误数据。
mysql> #往回取数据的时候,还要告诉连接器,如果你从服务器返回,你应该给我转成什么格式。
mysql> #因此,一共需要设置3个参数:
mysql> #1、客户端发送的编码;
mysql> #2、连接器使用的编码;
mysql> #3、返回数据的编码;
具体的操作:
ysql> #当前的情况是:客户端是GBK,服务器最终存储的是UTF8。
mysql> #因此,你就要明确告诉服务器,我的客户端是GBK的。
mysql> #命令如下:
mysql> set character_set_client=gbk;
Query OK, 0 rows affected (0.00 sec)
mysql> #再告诉连接器,使用UTF8。
mysql> #命令如下:
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> #再告诉,如果你返回值给我看的话,也请返回GBK。
mysql> #命令如下:
mysql> set character_set_results=gbk;
Query OK, 0 rows affected (0.00 sec)
方式一:
1)设置客户端的字符集
set character_set_client=gbk;
2)设置连接器的字符集
set character_set_connection=utf8;
3)设置返回结果的字符集
set character_set_results=gbk;
方式二:
当客户端、连接器、返回值的字符集相同,并且都是gbk的时候,我们可以采取如下的简写方式:
set names gbk;
这就话其实包含了三层意思:
set character_set_client=gbk;
set character_set_connection=gbk;
set character_set_results=gbk;
① 连接器的作用
连接客户端与服务端,进行字符集的转换。连接器有这种自动转换的功能。
② 连接器的工作流程
Ⅰ 客户端的字符先发给连接器,连接器选择一种编码将其转换(转换之后的编码,与连接器的编码格式一致),进行临时存储。
Ⅱ 接着,连接器再次转换成服务器需要的编码,并最终存储在服务器中。
Ⅲ 然后,服务器返回的结果,再次先通过连接器,连接器将其转化为与客户端一致的字符集,就可以在客户端正常显示了。
网友评论