㈠ 有谁能帮我解决php的采集程序的乱码问题
PHP初学者一定遇到过中文乱码问题,我也遇到过,现在把我用的解决方案共享给大家。如果大家有更好的解决方案,请回复。
在=mysql_db_query("lib","select
*
from
mytb",);
前面加上
mysql_query("set
names
gb2312");或者mysql_query("set
names
gbk");
㈡ PHP读取文件乱码问题
1.fgetc($fp) 取得是单字节的,中文可能的根据编码可能有2 3 4字节,所以不管怎么输出肯定都会是乱码。
解决方法
1.修改php文件的编码为utf-8, 只有这样保存到test.txt文件里的文件才会是utf-8 大部分中文就都是按照3个字节
2.$fp=fopen($filename,"r");
while(($char=fread($fp,3))!==''){
printf("%d.%s",ftell($fp)/3,$char);
}
㈢ php采集uft8网页乱码问题解决了吗
我晕根本没问题,你的php页面(.php页面)如果本身就是utf8编码,那么采集出来的utf8页面就不是乱码
如果你的php页面是gbk,那么采集的需要iconv('utf-8','gbk',$str)转换,这跟php一点关系也没有。
说句你不爱听的,之所以你会问这种问题,只能说你对于文字编码的基础知识还不过关,或者无法从底层解释什么是文字编码。
---------------补充
巧了,我最近也在写一个抓取引擎,目前可以抓取国内主流几大博客、还有若干新闻网站的新闻,当然也是通过自定义的规则文件。我的做法是,在规则文件就指定这个网站是什么编码,而在抓取引擎内部,统一使用utf-8编码,这样统一的输入输出,就可以杜绝乱码现象的存在。
我可以给你看看我写的HTML类的构造函数,可能对你有帮助:
function __construct($url, $incharset = null, $baseurl = null, $method = 'get', $postarr = null) {}
-------------------
我的抓取引擎已经支持通过规则,一层层往里点了。
㈣ php采集utf-8网页乱码
脚本运行的最前面加上一句 set_time_limit(0); 设置不超时
iconv 或者mb_convert_encoding转码。获取过内容的时候就将得到的字符串转为你想要的编码。
㈤ php显示中文乱码
php数据库中文乱码的解决办法:1、创建数据库时,规定字符类型为uft8;2、创建表时,规定字符类型为utf8;3、在PHP的MySQL连接函数中,添加语句“mysql_query("set names 'utf8'")。
㈥ php如何解决查询出来的数据是乱码问题
乱码一直是困扰PHP初学者的一个非常大的问题,现在总结下造成乱码的原因及解决方法:
一、HTML页面编码:meta http-equiv=content-type content=text/html; charset=utf-8 这里的编码要和数据库编码,及连接数据库编码;
二、文件在存储编码:比如文件inde.php,改变其存储编码为所需编码。只需用EditPlus等文本编辑软件 文件另存为,在编码中选择正确的编码(这点很多人都会忽略);
三、数据库编码:比如用的是phpmyadmin 选择数据库后,选择操作选项。下面有一个整理,这里面也要设置成统一的编码;
四、表编码:操作和第三点类似。这里就不重复了;
五、字段编码:在建表的建字段的时候,有个整理。如果内容有汉字,就一定要改成统一的编码;
六、连接数据库时mysql_select_db()后面,要加一句 mysql_query( set names utf8 );
七、 (刚遇到的)本地测试成功后的网站,传到网上去,会有乱码。可能会是在本地导出数据时没有选择正确的编码,所以才会在导入到web上后有乱码问题。
㈦ PHP curl采集防盗链网站乱码问题求助
你是用curl自己写的对吧,你获取回来的字符串你自己输出看看,如果乱码对吧,你是否检查过浏览器的编码呢?是不是都是utf-8?有时候浏览器也会识别错误,先找到什么编码显示是真确的,然后再进一步找对策,现在你这样转来转去,又明知道是同一个编码,这样做是白费功夫的。所以以后你可以去后盾人看看,我经常在那里学习,你可以陪我学习哦
㈧ 关于运行php项目出现乱码的问题
首先明确一点,这不是乱码,而是出错信息
你一定是改了php.ini里的display_errors为On
这样就打开了错误输出
本来你的程序是有错误的,但是关闭了错误输出,你看不到
现在有错误输出了
看你的错误提示是链接数据库失败
最后一张图片还有其他的错误
你应该把error_reporting改为E_ALL & ~E_NOTICE这样就不会有NOTICE级的警告
㈨ PHP 输出简单的中文 乱码问题
解决php中中文乱码问题方法
php文件本身的编码与网页的编码应匹配
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<metahttp-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html; charset=utf-8"),静态页面添加<metahttp-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,选择总是删除,再保存就可以去掉BOM信息了。
php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。
如果你的HTML文件文件出现了乱码问题,那么你可以在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。
(9)php采集乱码扩展阅读:
解决PHP 输出简单的中文 乱码问题的其他方法:
在php的echo前面加入header("Content-Type:text/html;charset=gb2312")
把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312
㈩ 采集的php网页数据为什么会乱码
是中文乱码吗,那就要看你数据库的编码和网页编码一样不