1.是用curl抓取的資料是用類似gzip壓縮後的資料導致的亂碼。
亂碼:curl www.1ting.com |more
亂碼:curl -h "accept-encoding: gzip"www.1ting.com | more
不亂碼:curl -h "accept-encoding: gzip"www.1ting.com | gunzip | more
不亂碼:curl www.1616.net |more
亂碼:curl -h "accept-encoding: gzip"www.1616.net | more
不亂碼:curl -h "accept-encoding: gzip"www.1616.net | gunzip | more
下面的a,b解釋的是www.1ting.com,c,d解釋是的www.1616.net
a.某個url,如果用不加任何選項的curl命令抓取後亂碼,在curl後面加上accept-encoding:gzip,後面不加gunzip,則抓取的資料會亂碼。
b.某個url,如果用不加任何選項的curl命令抓取後亂碼,在curl後面加上accept-encoding:gzip,後面加上gunzip,則抓取的資料不會亂碼。
c.某個url,如果用不加任何選項的curl命令抓取後不亂碼,在curl後面加上accept-encoding:gzip,後面不加gunzip,則抓取的資料會亂碼。
d.某個url,如果用不加任何選項的curl命令抓取後不亂碼,在curl後面加上accept-encoding:gzip,後面加上gunzip,則抓取的資料不會亂碼。
小總:也就是說在curl後面加上accept-encoding:gzip,再用gunzip解壓縮,則基本上可以儲存資料不亂碼。
2.gbk或者utf8漢字之類的亂碼
curl -fgb2312 -t utf-8
set lang="gb2312"
export lang
curl
iconv命令的詳細語法:
iconv [選項..] [檔案..]
選項:-f 輸入編碼
-t 輸出編碼
-l 列出所有已知的編碼
-o 輸出檔案
對比採用php curl庫的post getheader三種方法之間的差異
比較post getheader這三種方法的區別:
引數post
getheader
curlopt_url有有
有curlopt_post
開啟關閉
關閉curlopt_httpheader
如果有$header,則開啟
如果有$header,則開啟
如果有$header,則開啟
curlopt_header
false
false
true
curlopt_nobody
false
false
true
curlopt_postfileds
true
false
false
從上表中可以看出:
post方法:開啟post連線,然後傳送post報文體。關閉header和nobody
get方法:關閉post相關的選項,關閉nobodyheader,僅僅只是開啟curlopt_httpheader
header方法:開啟header和nobody,關閉post相關的選項。
應該說上述三種方法,乙個明顯的區別是,箱採用什麼方法的時候,就開啟對應的curl選項。
curl_httpheader與curopt_header的區別:
前者是設定http頭部資訊的乙個陣列
後者是將標頭檔案的資訊以資料流的方式輸出
**
curl請求時顯示證書 curl命令列使用小記
curl post json請求資料 x 選項指定http請求的方法,如get post delete put h 選項指定http請求的訊息頭 header d 選項指定請求的引數資料,注意json資料格式 curl urlencode請求資料 curl get h access token 12...
使用Curl進行抓取遠端內容時url中文編碼問題
php中對於url進行編碼,可以使用 urlencode 或者 rawurlencode 二者的區別是前者把空格編碼為 而後者把空格編碼為 20 不過應該注意的是,在編碼時應該只對部分url編碼,否則url中的冒號和反斜槓也會被轉義。下面是詳細解釋 1 string urlencode string...
為什麼本地開發時使用CURL請求本地URL會卡死
預設時啟動phpcgi是 d php php cgi.exe b 127.0.0.1 9000 c d phpfind phpa php.ini 先看nginx配置12 3456 789location php nginx中,看php檔案塊fastcig pass的設定值 127.0.0.1 900...