我是菜鸟,什么都不懂,所以大大们请讲的简单实用一点。现在有这么种情况,数据库是latin1的,表中有两个字段,在这样输出时
set names utf8;
select col1,col2 from tb;
两列都有输出值,都是乱码。这样输出时
set names latin1;
select col1,col2 from tb;
COL2输出正常,COL1是空的然后用工具的导出功能,指定字符集为1252 latin1,COL1,COL2单独导出是都正常的,一起导出时,COL1正常,COL2变成另一种乱码。现在就想让这两列都正常输出,有什么办法可以尝试的?
set names utf8;
select col1,col2 from tb;
两列都有输出值,都是乱码。这样输出时
set names latin1;
select col1,col2 from tb;
COL2输出正常,COL1是空的然后用工具的导出功能,指定字符集为1252 latin1,COL1,COL2单独导出是都正常的,一起导出时,COL1正常,COL2变成另一种乱码。现在就想让这两列都正常输出,有什么办法可以尝试的?
set name utf8的意思是你的客户端以UTF8的方式向MYSQL服务器提交数据;如果你的表 列字符集是默认的 那就是你表 列都是 latin1字符集
你插入Utf8的数据 当然会出现乱码。。同理
set names latin1的意思是你的客户端以latin1的方式向MYSQL服务器提交数据;
与数据库一样 就没问题至于你说的COL2输出正常,COL1是空的 这个还要看看你的字段字符集是不是特制定过
show create table tb 可以看
如果没特别写出列的字符集 那就是默认的表的字符集了 表也没特别写出来那就是数据库的字符集了。。还可以使用
use dbname;
select CHARACTER_SET_NAME
from information_schema.columns
where table_name='xx';
MySQL 中文显示乱码