Rumah > pangkalan data > tutorial mysql > MySQL中文乱码如何解决?

MySQL中文乱码如何解决?

黄舟
Lepaskan: 2017-08-02 16:23:56
asal
2107 orang telah melayarinya

mysql数据库越来越受大家的欢迎了。

中国人往数据库里存数据,总的也不会少了中文,可mysql存中文默认会乱码。

这里我们需要来做一些配置,让它不再是“存进去是中文,查出来是各种问号”了。

1.我们可以先看看自己的mysql数据库,中文是否乱码。

登录数据库,再带的test数据库中,创建一张表,然后插入中文,查询结果。我们可以看到,中文变成了问号。

show databases;
use test;
create table users(name varchar(50));
insert into users values('张三');
select * from users;
Salin selepas log masuk

1.png

2.我们来查询一下,各个字符相关的变量的值是什么。

输入 SHOW VARIABLES LIKE 'character%';

我们可以看到 character_set_database的值为latin1。大家的值可能和我的不一定一样,总体来说应该不会是都为utf8。

2.png

3.如果有多处不是utf8,我们需要来修改mysql的配置文件my.ini。

一般位于安装路径根目录,或者安装路径根目录的bin下,或者Linux下/etc/my.cnf。

3.png

4.在my.ini中:

搜索到[client],修改或添加default-character-set=utf8;

搜索到[mysqld],修改或添加character-set-server=utf8;

搜到到[mysql],修改或添加default-character-set=utf8;

4.png


5.重启mysql数据库。

Windows下可以运行services.msc,找到mysql服务,重启;

Linux下,可以/etc/init.d/mysqld restart;

我的是xampp,没有添加服务,直接先点击stop,再start就好了。

5.png


6.查看各变量的值;

SHOW VARIABLES LIKE 'character%';
Salin selepas log masuk

或者

status
Salin selepas log masuk

6.png

7.测试修改之后是否仍乱码。

create database baidujingyan;
use baidujingyan;
create table users(name varchar(50));
insert into users values('张三');
select * from users;
Salin selepas log masuk

可以看到,我们的数据库已经能正常显示中文了。

7.png

注意事项

如果在程序中,还会出现乱码,可以在添加 set names utf8

Atas ialah kandungan terperinci MySQL中文乱码如何解决?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan