数据库乱码怎么解决

发布网友 发布时间:2022-04-24 03:12

我来回答

3个回答

热心网友 时间:2022-04-29 07:44

展开快讯
登录
首页
专栏
问答
沙龙
快讯
团队主页
开发者手册
智能钛AI
在线学习中心
TVP
返回腾讯云官网
彻底解决MySQL中文乱码
mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。

1、中文乱码

1.1、中文乱码

无法插入中文字符:

1.2、查看表字符编码

我们可以看到表的默认字符集是latin1.

所以我们在创建表的时候就需要指定表的字符集:

这样在Linux里面可以访问并且可以插入与访问这个表了。

1.3、数据库与操作系统编码

虽然在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8。

而且数据库的编码也存在问题。

这里我们可以看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.下面我们就来看看如何解决mysql乱码情况。

2、mysql设置变量的范围

2.1、session范围

查看数据库编码:

修改字符编码:

我们可以看到字符集已经修改成都是utf8了。但是这里有一个问题,那就是我们重新打开一个命令窗口然后查看数据编码就会出现下面的画面:

热心网友 时间:2022-04-29 09:02

1.更改数据库安装时的字符编码。打开mysql安装目录,找到my.ini文件,通过使用记事本的方式打开,将这里面的default-character-set=latin1修改成gbk,注意这里面有两处需要修改。
2.修改数据库实例中的编码,打开data文件夹,找到对应的数据库实例,修改里面的db.opt文件,将字符编码改成gbk。
3.修改数据库实例编码还可以通过navicat for mysql客户端直接进行更改,在数据库实例上右键--属性--选择字符编码。
4.重启数据库。通过cmd命令对数据库进行重启生效。
5.更改编码中连接串的字符编码,在连接串后面添加&useUnicode=true&characterEncoding=gbk。
6.测试数据是否正常。再次重新插入数据库数据,就可以看到汉字不会乱码。
注意事项
修改my.ini文件中的default-character-set=latin1有两处需要进行更改。

热心网友 时间:2022-04-29 10:37


原创经验
皇上v来嘛
606
数据库或者页面输出中文乱码,但是英文以及数字却没有乱码的问题,一般出现这种问题都是编码引起的,所以保持所有编码一致就是解决问题的方法下面以utf-8为例
工具/原料
more
电脑 Navicat for MySQL软件,Notepad++
方法/步骤
3/4 分步阅读
在PHP文件的头部,写上:header('Content-type:text/html;charset=utf-8');


2/4
php链接数据库之后执行:

//链接数据库

$lianjie=new mysqli("数据库地址","用户名","密码","数据库名");

$lianjie=new mysqli("localhost","root","root","web");

//设置编码

mysqli_query($lianjie,"set names utf8");


3/4
用Navicat for MySql软件新建数据库的时候,选择字符集为utf8


4/4
通过上面的方法,基本就可以解决页面或者数据库出现乱码的问题了。


声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com