php网页抓取乱码(mysq数据库使用的编码字符集(1)_set=utf8)
优采云 发布时间: 2022-01-04 20:12php网页抓取乱码(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 />
但是还是有乱码问题!
分析:使用上面的语句,只修改了三项,这三项是
字符集客户端
字符集连接
字符集结果
而且这个修改只是暂时的,关闭终端后还是和之前一样
阐明:
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编码!