php网页抓取乱码(PHP中文乱码现像发生在网页本身的有些产生在于MYSQL)
优采云 发布时间: 2022-02-27 07:11php网页抓取乱码(PHP中文乱码现像发生在网页本身的有些产生在于MYSQL)
前言
PHP中的中文乱码是PHP开发中常见的问题之一。中文乱码有时出现在网页本身,有的出现在MYSQL交互过程中,有时与操作系统有关。以下是一个总结。
一、 PHP 网页的编码
最好最快的解决方案是使页面上声明的代码与数据库内部的代码保持一致。如果页面申请的代码与数据库内部的代码不一致,设置连接代码。Mysql_query("设置名称***").
1、 php文件本身的编码应该和网页的编码相匹配。如果你想使用gb2312编码,那么php应该输出header
header("内容类型:text/html;charset=gb2312")
添加静态页面
, 所有文件的编码格式都是ANSI,可以用记事本打开,另存为选择的编码为ANSI,覆盖源文件。
2、 如果你想使用uft-8编码,那么php应该输出header
header("内容类型: text/html; charset=utf-8"),
添加静态页面
, 所有文件的编码格式都是utf-8. 保存为utf-8可能有点麻烦。一般utf-8开头会有BOM。如果使用Session,会有问题,可以使用editplus软件保存。在本软件中,选择Tools→Preferences→File→UTF-8 Signature,选择Always Delete,然后保存即可删除BOM信息。
3、PHP本身不是Unicode,substr等所有函数都必须改成mb_substr(需要安装mbstring扩展);或使用 iconv 进行转码。
在需要做数据库操作的PHP程序前加上mysql_query("set names encoding"),编码和PHP编码一样,如果PHP编码是gb2312,那么mysql编码是gb2312,如果是uft-8 ,那么mysql就是utf8.这样改后就不会出现乱码了。