数据库编码问题
lmysql有六处使用了字符集,分别为:client 、connection、database、results、server 、system。
•client是客户端使用的字符集。
•connection是连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型就按照服务器端默认的字符集设置。
•database是数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
•results是数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。
•server是服务器安装时指定的默认字符集设定。
•system是数据库系统使用的字符集设定。
•
l查看和修改数据库字符集
•show variables like 'character%';
•set character_set_results=gbk;
•set character_set_client=gbk;
如果默认数据库是utf-8类型的6种字符集,在dos下属性默认是gbk处理字符集的,当使用insert into语句插入数据的时候插入中文,此中文先被gbk编码然后进入数据库被默认当作utf-8存储 就是乱码了,如果•set character_set_client=gbk; 通知数据库客户端是gbk则数据库会先根据gbk码表解码 然后再编码称utf-8存在数据库中,•set character_set_results=gbk;代码显示结果为gbk.