latin1 字符集乱码:
数据库字符集默认是latin1 或者你也可以使用命令,show create table
tb_name; 查看表的字符集
如果插入中文数据,查询时候中文显示 ? ? ? 则在插入数据之前执行set names latin1,再插入。
然后再查询数据,这种方法适用于库表的字符集都是latin1的。
退出就失效了,每次登录查询都有这样操作
如果想不想每次都执行set names 则在配置文件里面的client和server里面写上字符集
default-charset-set=latin1
charset-set-server=latin1
如果字符集是utf-8字符集的表
则执行set names utf8;
如果我们需要导入的表包含中文,那么我们可以在导入表的时候指定字符集
如果已经乱码的数据是没有办法再处理的,需要在我们执行相关操作之前就设置好字符集
不乱码的思路:
操作系统,mysql客户端,服务器端,库,表,程序的字符集都统一就不会乱码了
set names 其实就是更改客户端的字符集