終端使用curl請求url時返回亂碼的解決

2021-08-21 04:04:41 字數 1912 閱讀 9749

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...