php网页抓取乱码(mysq数据库使用的编码字符集(1)_set=utf8)
优采云 发布时间: 2022-04-19 16:39php网页抓取乱码(mysq数据库使用的编码字符集(1)_set=utf8)
一、
学php的童鞋在写网页的时候,如果设计了中文内容的存储,大部分都会出现乱码的问题。对于一般的乱码,我们可以从三个方面进行检查
(1)网页的编码是否正确,例如是否在header中添加原创标签
(2)检查mysql数据库存储时使用的默认字符集
(3)查看网页文件的编码,是否是对应的中文编码
------------------
环境:win7+wamp2.2
------------------
二、
先从第二点说起,mysq数据库使用的编码字符集
(1)打开mysql终端,查看当前设置,确定要修改的范围
show variables like ‘char%‘;
(2)根据结果分析,
1、如果你显示的结果和我的差不多,也就是(只有character_set_system编码为utf8)那么按照下面的步骤一步步来
2、打开my.ini文件,搜索关键词'mysqld',找到后观察是否有这一行
character_set_server=utf8
如果没有,你应该像我一样在它下面添加一个句子
3、再搜索关键词'client'看看有没有这行
default_character_set=utf8
如果没有,请在 [client] 下添加
4、保存,重启mysql服务,关闭mysql终端(不然你看到的客户端代码不会更新)
5、再次打开终端,我们再次进入
show variables like ‘char%‘;
如果出现如下结果,即mysql数据设置成功
三、
网页文件编码的问题是最容易被忽略的。保存时选择保存文件编码的格式时设置。
解决方案:
1、使用notepad++打开网页文件,然后在“格式”--“转为UTF-8无BOM编码格式”
2、保存就行
问题分析:
1、写php的时候用过
<br />
但是还是有乱码的问题!
分析:使用上面的语句,只修改了三项,三项是
character_set_client
字符集连接
字符集结果
而且这个修改只是暂时的,关闭终端后还是一样。
阐明:
2、我们来分析第三个乱码问题
(1)使用sublime text3编辑打开php文件,左下角可以看到编码信息,可以看到当前编码为gb2312
(2)网页加载的时候,相当于打开了一个文件,那个时候读取的格式是按照gb2312的编码读取网页文件的,当是显示在用户的浏览器中,因为网页声明的字符集是utf-8,所以获取到的文件内容会按照utf-8字符集进行解释,会导致乱码,但是没有问题我们从数据库中读取的内容。
网络编码
原创gbk编码文件
后来的 utf-8 编码文件
(3)注意,sublime text3没有给你转换编码,虽然显示转换成功,但是什么?显示还是一样,还是我们notepad++功能更强大,如何修改上一个! 转换成功后
3、为什么我按照你说的修改了,在mysql终端下显示,还是乱码?
分析:
(1)我们先来看看windows下cmd使用的是什么字符集?
可以看出cmd的字符集是gbk,也就是说终端显示的任何内容都会对应gbk的字符集,但是我们数据库的中文设置的utf8字符集,当我们想要显示出来,自然会使用 utf8 编码读取数据库数据,当编码为 utf-8 时,到了终端就乱了
(2)怎么查?
用phpmyadmin就行了,当然我们要设置我们使用的utf-8编码!
本文来自“Do it and enjoy it”博客,请务必保留此出处