目前经常使用的编码为UTF-8当然还有GB2312,GBK等编码,在进行网页的抓取分析的时候总会遇到乱码的问题,当网页编码为GB2312数据库编码为UTF-8时也会遇到这个问题。

php的mb_convert_encoding函数

提示此函数未定义,”Call to undefined function:mb_convert_encoding()”,

解决办法:

需要加载php_mbstring扩展

windows下修改php.ini文件 , 把;extension=php_mbstring.dll前的分号去掉

重起apache

使用mb_convert_encoding改变编码

mb_convert_encoding($str, $str1, $str2);

$str为要转的字符串,$str1为要转换的目的编码,$str2为源码,如果不知道可以用auto自动检测,返回类型为字符串。

例如我写的转换函数

function zhuanma($str)

{

return mb_convert_encoding($str, “UTF-8”, “GB2312”);

}

直接调用就可以了

PHP中的另外一个函数iconv也是用来转换字符串编码的,与上函数功能相似。下面还有一些详细的例子:iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5)mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5)用法:string mb_convert_encoding ( string str, string to_encoding [, mixedfrom_encoding] )需要先enable mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;string iconv ( string in_charset, string out_charset, string str )注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。Returns the converted string or FALSE on failure.使用:发现iconv在转换字符”—”到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个”—”都无法转换成功,无法输出。 另外mb_convert_encoding没有这个bug.一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding函数.from_encoding is specified by character code name before conversion. itcan be array or string – comma separated enumerated list. If it is notspecified, the internal encoding will be used./* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert strto UCS-2LE */$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win,sjis-win”);/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */$str = mb_convert_encoding($str, “EUC-JP”, “auto”);例子:$content = iconv(”GBK”, “UTF-8″, $content);$content = mb_convert_encoding($content, “UTF-8″, “GBK”);

也可以在发送的头文件中加入编码内容,欢迎大家多多指教

对于url的编码构造请查看http://www.fddcn.cn/url-curl-php.html

curl抓取页面是乱码 php_php解决curl编码问题-curl乱码-curl在post表单时乱码相关推荐

  1. curl抓取页面时遇到重定向的解决方法(转)

    用php的curl抓取网页遇到了问题,为阐述方便,将代码简化如下: [php] view plaincopy <?php function curlGet($url) { $ch = curl_ ...

  2. PHP使用CURL抓取页面

    cURL的基本原理 curl是利用URL语法在命令行方式下工作的开源文件传输工具,他能够从互联网上获得各种各样的网络资源.简单来说,curl就是抓取页面的升级版. <?php//1.初始化,创建 ...

  3. curl抓取页面是乱码 php_php curl 获取网页内容 中文乱码

    获取是没问题..但是似乎字符编码上有些问题, //header( "Content-type:text/html;Charset=utf-8" ); $urls = [ 'http ...

  4. curl抓取页面每次生成新的session问题

    2019独角兽企业重金招聘Python工程师标准>>> curl_setopt($ch , CURLOPT_COOKIEJAR , COOKIE_FILE_PATH); curl_s ...

  5. JSP使用Struts1提交中文表单时乱码,字符编码问题

    最近写JSP大作业时发现把所有页面以及数据库都统一成utf-8后在写注册时数据库内插入的中文字符仍然是中文乱码,真的是快崩溃了. 后来想起来会不会是框架自身的问题,于是搜索到这个问题: Struts框 ...

  6. crul php 反爬虫,pixabay 反爬好厉害,浏览器能访问,复制所有 headers 用 curl 抓取,直接 403,好神奇!...

    这几天不能外出,在家闲来无事准备写爬虫练手,选了个 pixabay.com ,浏览器正常访问,复制浏览器 headers,用 curl 抓取页面内容: $ch = curl_init('https:/ ...

  7. PHP使用CURL抓取网页

    CURL是一个非常强大的开源库,支持很多协议,包括HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS ...

  8. php抓取页面内容乱码,如何解决抓取乱码php网页的问题

    爬行乱码php网页的解决方案:1.使用"mbconvertencoding"来转换编码:2.设置并添加"curl _ setopt ($ ch,curl opt _ en ...

  9. HtmlAgilityPack 抓取页面的乱码处理

    HtmlAgilityPack 抓取页面的乱码处理 用来解析 HTML 确实方便.不过直接读取网页时会出现乱码. 实际上,它是能正确读到有关字符集的信息,怎么会在输出时,没有取到正确内容. 因此,读两 ...

最新文章

  1. vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码
  2. lpq命令--Linux命令应用大词典729个命令解读
  3. 为什么现有的工作制度 对 上班族不利
  4. (23)zabbix单位符号Unit symbols
  5. mysql查阅建立的库_MySQL - 建库、建表、查询
  6. 软件工程综合实践专题第三次个人博客作业
  7. 几种身份的创业者优劣势大比拼
  8. Python—实训day10—Matplotlib数据可视化和scikit-learn构建模型
  9. 判断溢出(ybtoj-字符串)
  10. CSS 实现加载动画之五-光盘旋转
  11. Win7旗舰版系统0x0000007f蓝屏怎么办
  12. 为什么说ip协议是无连接协议
  13. 相似基因(洛谷-P1140)
  14. 【洛谷】【堆+贪心】P1484 种树
  15. iPhone X 穿越回 1957 年计算力相当的电脑,将会是什么样?
  16. 剑指offer例题分享--6
  17. A Better Finder Attributes 7 Mac版(文件批量重命名)
  18. Java 数据库基本操作
  19. 学科03:工程学重要模型
  20. Python面试简历工作描述写法总结

热门文章

  1. leetcode 移动零
  2. 【C语言】(数组方式)输出一组成绩中的最高分与最低分
  3. 【C语言】一元二次方程(求实根和虚根)
  4. Let‘s Encrypt 免费Https证书
  5. C#设计模式之1-工厂方法模式
  6. script和scriptreplay命令实现终端录制和回放。
  7. 如何使用Python的Flask和Google App Engine构建网络应用
  8. 假设以带头结点的循环链表表示队列_JavaScript数据结构之链表--设计
  9. simulink模块的输入端口与参数的关系
  10. Hive导数据到本地文件