mysql命令行以及mysql workbence查询结果中文乱码的解决方法
然后插入了一条数据
set names character utf8;
table fortest(empno intauto_increment,empname nvarchar(20) not null,constraint pk_fortestprimary key(empno))default charset=utf8; 然后插入了一条数据 set names character utf8; insert into fortest(empno)values('欧阳菲菲'); 发现插入不了mysql命令行,总是报错,具体错误如下: 这种情况主要是由于默认编码设置错误引起的。 现在就查看一下mysql服务器的配置情况吧。 具体命令就是 show variables like 'character%'; 查出的结果如下: 具体解决方法: 使用MySQL命令行可以实现许多我们需要的功能,不过在使用MySQL命令行的时候,有一个问题是在MySQL命令行插入中文数据或者查询中文数据时出现乱码,或者显示不对。 在MySQL命令行输入:show variables like ‘character_set_%’; 查看当前配置的编码; 在MySQL命令行输入 :set names utf8; 则等同于 set character_set_client=utf8; set character_set_results=utf8; set character_set_connection=utf8; 这三条命令 在命令行插入数据之前 执行命令set names gbk;或者set names gb2312; 再插入 查询数据之前 执行命令set names gbk;或者set names gb2312; 完了之后再set names utf8; 这样就能正常插入和查询中文并且保持数据库编码为utf8 对于mysqlworkbench中的查询出现中文乱码主要是由于mysql服务器的配置中默认设置的编码不是utf8引起的,具体在windows操作系统下,要修改mysql安装目录下的my.ini (linux下则是安装目录下的my.cnf文件) 主要修改的部分如下: [client] port=3306 [mysql] default-character-set=utf8 [mysqld] # The TCP/IP Port the MySQL Server will listen on port=3306 #Path to installation directory. All paths are usually resolvedrelative to this. basedir="D:/Program Files/MySQL/MySQL Server 5.1/" #Path to the database root datadir="D:/MySQL/MySQL Server 5.1/Data/" # The default character set that will be used when a new schema ortable is # created and no character set is defined default-character-set=utf8 具体修改的部分就是红色粗体字的文字部分。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |