Re: [問題] eclipse的結果正確,javac的結果錯誤

看板java作者 (sbr)時間15年前 (2009/06/02 20:47), 編輯推噓7(703)
留言10則, 5人參與, 最新討論串3/5 (看更多)
※ 引述《Holocaust123 (Terry)》之銘言: : ※ 引述《ogamenewbie (._.)》之銘言: : : 基本上,因為你很多地方沒有講得很清楚, : : 所以我中間隨口問問,你就隨便參考看看。 : 真是抱歉QQ,我再講清楚一點,順便把我的code上傳到免空了 : http://www.badongo.com/file/15256049 : 不貼code是怕複製貼上後編碼有問題,所以我把整個java檔壓縮上傳。 : 這個 main.java 檔案的編碼是 UTF-8。 問題出在這裡。 main.java line 57: br = new BufferedReader(new InputStreamReader((InputStream)obj)); 這樣子是以系統預設的編碼(encoding)來建立 InputStreamReader,應該要使用 網頁 response 的 Content-Type header value 指定的 charset。 比如 Yahoo 知識這一頁: http://tw.knowledge.yahoo.com/question/question?qid=1509051800784 Content-Type 是 "text/html; charset=utf-8",你就要使用 UTF-8 來 decode 網頁的輸出(byte sequence)。 你現在的程式如果在一個預設 encoding 不是 UTF-8 的 JRE 環境執行,在使用 BufferedReader 讀取網頁輸出時會失真,使用 regular expression 當然也就無法 正確找出你要的資訊。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.143.200

06/03 11:33, , 1F
厲害
06/03 11:33, 1F

06/03 15:29, , 2F
html parser套件都能夠針對page取得charset等資訊
06/03 15:29, 2F

06/03 15:32, , 3F
因此程式不用寫死 讓套件內建的方法判定charset即可
06/03 15:32, 3F

06/03 19:00, , 4F
元PO真神人也....m(_ _)m
06/03 19:00, 4F

06/03 19:04, , 5F
這樣cmd就沒辦法了,因為cmd預設是Big-5且無法更改..
06/03 19:04, 5F

06/03 20:01, , 6F
哪有, 我上篇的推文就可以動啊
06/03 20:01, 6F

06/03 20:48, , 7F
kene 講的方式在只面對單一編碼的數據時,確實是對的
06/03 20:48, 7F

06/03 20:49, , 8F
那方法等於是變更預設編碼。
06/03 20:49, 8F

06/03 21:15, , 9F
的確, 遇到多重編碼的環境就會爆炸 XD
06/03 21:15, 9F

06/03 22:18, , 10F
k大的方法成功了,可以請問甚麼是多重編碼環境嗎@@?
06/03 22:18, 10F
文章代碼(AID): #1A9HzPrA (java)
討論串 (同標題文章)
文章代碼(AID): #1A9HzPrA (java)