php网页抓取乱码(mysq数据库使用的编码字符集(1)_set=utf8)

优采云 发布时间: 2022-01-04 20:12

  php网页抓取乱码(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编码!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线