[請益] curl抓回來的亂碼問題

看板PHP作者 (魯來又魯去)時間11年前 (2014/11/17 15:57), 11年前編輯推噓8(807)
留言15則, 4人參與, 最新討論串1/2 (看更多)
是這樣的 小弟最近在學curl,現在有個問題是 抓回來的東西出現確是亂碼 我試過用別的編碼方式,卻都還是亂碼 大概是像下面這樣 <a href="" rel="nofollow">http://www.8591.com.tw/user-login.html">å·2 è2 ·åˆ°ç?</a> <a href="" rel="nofollow">http://www.8591.com.tw/user-login.html">å·2 è3 £出ç</a> <a href="" rel="nofollow">http://www.8591.com.tw/user-login.html">é2 è3 £å鄊 我是以8591網站來做測試的 請問要如何知道他的編碼是什麼來做轉換呢? 我看他的表頭是用UTF-8 我顯示的方式也用UTF-8,卻還是亂碼 請各位先進給小弟一點指導 謝謝! -- Democracy = ('PIG'==$Mayor)?'China':'Our'; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.19.218 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1416211028.A.725.html

11/17 21:06, , 1F
你的程式是怎麼寫的? 這看起來像是把 UTF-8 解做英文編碼
11/17 21:06, 1F
$url = 'http://www.8591.com.tw/wareList-sellList-22.html?searchServer=2031&searchType=1'; $ch = curl_init(); $this_header = array( "content-type: application/x-www-form-urlencoded; charset=UTF-8" ); $timeout = 30; curl_setopt ($ch, CURLOPT_URL, $url); //設定抓取網址 curl_setopt($ch,CURLOPT_HTTPHEADER,$this_header); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//逾時時間 $data = curl_exec($ch); $file = fopen("data8591.html", 'w'); fwrite($file, $data); fclose($file); 我是先抓下來放到一個檔案來試試看 打開data8591.html中文字的部分就是亂碼了..

11/18 02:40, , 2F
這latin1吧
11/18 02:40, 2F

11/18 02:41, , 3F
你用python or ruby2抓抓看
11/18 02:41, 3F

11/18 02:42, , 4F
應該會是utf8
11/18 02:42, 4F
查了一下latin1好像都是關於資料庫的 很不幸的alog大說的兩種我都不會QQ ※ 編輯: crossdunk (59.120.19.218), 11/18/2014 08:59:18

11/18 11:01, , 5F
你在windows上看,試看看把UTF-8轉BIG5就可以正常看
11/18 11:01, 5F
不好意思,我在網頁上改編碼方式,改成BIG5還是亂碼QQ ※ 編輯: crossdunk (59.120.19.218), 11/18/2014 11:40:20

11/20 20:18, , 6F
你的純文字檔 不是用ansi建的吧?
11/20 20:18, 6F

11/20 20:20, , 7F
看錯 你的data8591.html 開頭有宣告是utf-8嗎?
11/20 20:20, 7F

11/20 20:24, , 8F
總覺得這個問題 是在抓下來時發生的....
11/20 20:24, 8F

11/20 20:25, , 9F
我都是寫一個專門display的html 好像沒發生過這種事情
11/20 20:25, 9F

11/20 20:30, , 10F
我用你的碼測了一下抓8591首頁 沒任何問題哎@@
11/20 20:30, 10F

11/20 20:31, , 11F
是不是你browser的問題?@@
11/20 20:31, 11F

11/20 20:32, , 12F
我用你的跟樓下的碼 跑起來很正常哎 @@""
11/20 20:32, 12F

11/20 20:59, , 13F
還是說你是用國外的server... 有時候本機測試正常
11/20 20:59, 13F

11/20 21:00, , 14F
但是你直接用國外主機去爬... 他好像 有時候會有問題
11/20 21:00, 14F

11/20 21:02, , 15F
可能跟他某些設定有關....@@"
11/20 21:02, 15F
文章代碼(AID): #1KQQfKSb (PHP)
文章代碼(AID): #1KQQfKSb (PHP)