php网页抓取乱码(出现乱码的原因分析及解决方法有哪些呢?(图))

优采云 发布时间: 2021-10-24 00:04

  php网页抓取乱码(出现乱码的原因分析及解决方法有哪些呢?(图))

  一、乱码原因分析

  1.保存文件时,文件有自己的文件编码,是汉字还是其他语言,用什么编码来存储

  2.输出时,指定内容的编码,如以网页形式输入时

  3.从数据库中取数据时,不确定数据库和字符集

  4、以汉字为例。汉字也被编码。一个汉字 gbk 需要两个字符,而 utf8 需要三个字符。

  可能导致乱码的潜在原因上面已经说了,我现在就整理一下。

  第一种情况,保存的文件和显示代码不一致

  如果保存文件时使用utf8编码,输出网页时设置了gbk编码,所以会出现乱码。

  第二种情况,保存的文件和数据库中存储的字符不一致

  假设,当保存的文件的编码与网页显示的编码相同时,仍然出现乱码。例如,当您保存文件时,您使用 utf8 编码,而您的数据库使用 gb2312 字符集来存储数据。

  第三种情况,代码乱码,你还觉得没有

  当你发现乱码的时候,当你改变保存文件的编码时,utf8的情况就好了。改成gbk会乱码,但是你觉得还好。这也是出现乱码的原因。这种情况会经常发生。

  第四种情况,数据库天生乱码

  数据的字符集,保存文件的编码,网页显示的编码都是一样的,但是出现乱码。大多数情况下,当数据进入数据库时​​,会出现乱码。这种情况比较麻烦。

  其次,我的解决乱码的方法不尽人意。

  我把这个方法命名为泡顶解牛法。哈哈。数据库,保存文件编码,显示时编码必须一致,以数据库为准

  第一种,数据库和保存文件的编码为utf8,网页显示为gb2312。这时,我们将更改显示编码。

  第二种是utf8,用于数据库和网页显示,gb2312用于保存文件。这时候就要注意一个。无法直接更改已保存文件的编码。在更改编码之前,请先更改文件的内容。COPY,改编码后,把COPY的内容贴回去,就OK了。

  第三种是数据库使用的utf8。保存文件和显示的编码是gb2312。这时候就可以利用程序的功能,对从数据库中检索到的数据进行转码,将utf8转为gb2312,这样就不用改了。文件本身的编码已更改,并且已显示编码。以php为例,mb_convert_encoding($string,"gb2312","utf8");

  第四种,数据库中的乱码,是在数据录入时,数据本身与数据库的存储码不同造成的。例如:数据库的存储代码是utf8,当数据存储在数据库中时,添加一个mysql_query("set names utf8;");

  三、乱码表现的情况

  乱码的表现,我遇到过两个,

  1)是字体中出现的乱码,变成了奇怪的字符

  2) 直接是空白页。检查源代码,什么都没有。在这种情况下,有时,我认为它是由乱码引起的。页面右击,查看属性,修改代码就知道是不是乱码导致的空白页。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线