如何将mysql客户端窗口的编码更改为UTF-8

 2024-02-03 00:01:13  阅读 0

我们经常会遇到中文字符插入到MySQL数据库中,但是出来的时候却发现是乱码的情况。 例如,如果我们在表a中输入和退出这样一条记录:i

insert into a values('你好helloworld你好','helloworld');

也许当你访问它的时候,你会发现它的结果变成了如下所示:

那么我们该如何解决这个问题呢? 通过下面对MySQL中字符集的操作,你就会得到答案!

要解决字符集的问题,首先要知道当前的系统、数据库、表、客户端等都使用什么字符集,系统支持什么字符集。 以下是一些获取相关信息的语句:

1、查看数据库支持的所有字符集

show character set;或者show char set;

2.检查当前状态,当然包括字符集设置:

status或者/s

db对应数据库目录下的db.opt文件内容:

3、查看系统字符集设置,包括所有字符集设置:

show variables like '%char%';

结果如下:

含义如下:

相关字符集官方文档:

取 为由 发送的集合。

为此,使用 和 。 它由 from 发送到tion(对于具有诸如或_utf8 之类的)。 是为了 . 对于同性来说,没有自己的,哪有一个。

s 是对 的查询所在的集合。 这些数据例如名称和错误。

从上面我们可以看出、s和s这三个字符集分别在什么时候使用。 其实我们可以看到,客户端连接服务器的时候,会将自己想要的字符集名称发送给mysql服务器,然后服务器就会用这个字符集来设置三个值​​​​tion, s 。 例如cmd使用gbk,mysql使用utf8。

命令:

MySql:

4、检查数据表中的字符集设置:

show full columns from tablename;

show create table tablename/G;

5.检查数据库编码:

show create database dbname;

知道了如何找到字符集的相关信息后,我们还需要知道在创建指定对象时如何为该对象匹配对应的字符集。

1、服务器级别:

安装MySQL时,可以设置服务器的默认编码格式,也可以修改my.ini。 修改[]中的=utf8来设置该值。

2.数据库级别:

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8;

注意,如果不指定默认字符集,系统会根据se的值进行设置,如:

3.表层:

CREATE TABLE  `db_name`.`tb_name` (id VARCHAR(20) NOT NULL,name VARCHAR(20) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

从下图可以看出,定义表的默认字符集是utf8。 即使se是gbk,表的列也不是utf8。

但请注意,如果没有定义表的默认字符集,则会根据se的值进行设置,如图:

4、栏目级别:

CREATE TABLE  `db_name`.`tb_name` (   id varchar(20) NOT NULL,   name varchar(20) CHARACTER SET utf8 );

从下图可以看到,整个表的默认字符集是gbk,所以没有指定字符集的列使用默认字符集,指定字符集的列名使用指定字符集utf8。

如果对象已经创建了,应该如何处理? 我们应该修改指定对象的字符集。

1.修改,s的三个值:

对于某个连接,您可以使用:

SET NAMES 'charset_name' [COLLATE 'collation_name']

命令

SET NAMES 'charset_name' [COLLATE 'collation_name']

相当于

SET character_set_client = charset_name; SET character_set_results = charset_name; SET character_set_connection = charset_name;

另外,还可以修改配置文件,在[mysql]下添加--set=utf8,配置成自己想要的字符集。 (我个人尝试在my.ini中配置,但是没有成功,不知道是不是被客户端想要的字符集覆盖了?)

2.修改se字段:

ALTER DATABASE db_name     [[DEFAULT] CHARACTER SET charset_name]     [[DEFAULT] COLLATE collation_name]

3.修改字段:

最简单的方法就是直接更改my.ini配置文件中的[]字段,添加-set-=gbk,然后重启,就可以改成自己想要的字符集了。

4、修改表的字符集:

ALTER TABLE tbl_name     [[DEFAULT] CHARACTER SET charset_name]     [COLLATE collation_name]

5、修改列的字符集:

col_name {CHAR | VARCHAR | TEXT} (col_length)     [CHARACTER SET charset_name]     [COLLATE collation_name]

例如:

ALTER TABLE t1 MODIFY     col1 VARCHAR(5)       CHARACTER SET latin1       COLLATE latin1_swedish_ci;

个人经验:

我们需要修改MySQL的默认编码,编辑my.ini(MySQL配置文件)文件对编码进行修改

      设置MySQL的默认字符集为utf8,找到客户端配置[client]在下面添加。
  default-character-set=utf8

      设定MySQL数据库以utf8编码运行,连接MySQL数据库时使用utf8编码

      停止和重新启动MySQL

      net stop mysql

      net start mysql

--设置=utf8

找到服务器配置【】并在下面添加

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码