php网页抓取乱码( PHP与Mysql的数据交互(一)_PHP网页的编码 )

优采云 发布时间: 2022-03-09 14:26

  php网页抓取乱码(

PHP与Mysql的数据交互(一)_PHP网页的编码

)

  

  配置phpstudy,访问页面出现中文乱码,解决方法如下。

  一、PHP网页的编码

  1、 php文件本身的编码要和网页的编码匹配

  一种。如果要使用gb2312编码,那么php应该输出header:header("Content-Type: text/html; charset=gb2312"),添加一个静态页面,所有文件的编码格式都是ANSI,可以是用记事本打开并保存为选择编码为ANSI以覆盖源文件。

  湾。如果要使用utf-8编码,那么php应该输出header:header("Content-Type: text/html; charset=utf-8"),添加静态页面,所有文件的编码格式都是utf- 8.

  保存为 utf-8 可能有点麻烦。一般utf-8文件开头都会有BOM。如果使用session,就会出现问题。你可以使用editplus来保存。在editplus中,tools->parameter selection->file->UTF-8 Signature,选择Always delete,然后save去掉BOM信息。

  2、php 本身不是 Unicode

  substr等所有函数都必须改成mb_substr(需要安装mbstring扩展),或者使用iconv转码。

  二、PHP与Mysql的数据交互

  1、PHP和数据库的编码要一致

  修改mysql配置文件my.ini或f,mysql最好用utf8编码。

  

  2、在需要做数据库操作的php程序前加上mysql_query("set names 'encoding'")

  编码与PHP编码一致。如果 PHP 编码为 gb2312,则 MySQL 编码为 gb2312。如果是utf-8,则MySQL编码为utf8,这样插入或检索数据时不会出现乱码。

  三、PHP 依赖于操作系统

  Windows 和 Linux 的编码是不同的。在Windows环境下,如果调用PHP函数时参数是utf-8编码的,会出现错误,如move_uploaded_file()、filesize()、readfile()等,这些函数是处理上传的。, 下载时经常使用,调用时可能会出错。

  虽然在Linux环境下gb2312编码不会出现这些错误,但是保存后的文件名是乱码,无法读取文件。此时,参数可以转换为操作系统识别的编码。编码转换可以是mb_convert_encoding(string, New encoding, original encoding)或者iconv(original encoding, new encoding, string),这样处理后保存的文件名不会出现乱码,可以正常读取文件,可实现中文名称文件的上传下载。

  其实还有更好的方案,完全脱离系统,不需要考虑系统编码什么。您可以生成一个只有字母和数字的序列作为文件名,并将原来的中文名称保存在数据库中,这样调用move_uploaded_file()就不会出现问题。下载的时候把文件名改成原来的中文名即可。实现下载的代码如下:

  

  最后,其实就是修改一个php页面,添加一个输出头。

  

  推荐教程:PHP视频教程

  以上就是php网页乱码的详细内容。更多详情请关注php中文网文章其他相关话题!

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线