Java NCRs & Eclipse Console Encoding

為了抓股票的資料
所以之前寫了一個抓網頁的小模組
可是前幾天開始
TSE網頁竟然給我來這套
網頁中所有的字都是OK的,Big5編碼
偏偏只有一個字是NCR表示法
我查網頁資料,好像也稱做HTML Unicode
NCR為numeric character reference的縮寫
簡單的說就是以數字來表示某個unicode字元
今天發生問題的是一間新公司,叫做新宝科
中間那串字就是”宝”這個字
很詭異吧
在FF上看都很正常,一看到原始碼就看到像這樣的HTML Unicode碼
原來是瀏覽器自己找出正確的字元並加以顯示了
這個問題弄了我兩天
終於完成了
首先我好不容易找到了一套叫做 Jericho HTML Parser 的程式
然後把它加入到Eclipse我的專案中
呼叫
au.id.jericho.lib.html.CharacterReference.decode(你的字串);
decode靜態方法得出來的結果是一個字串
不過這時候如果你用System.out.println(解碼結果);
的話,應該會看到新?科
為什麼呢?!
這很可能是因為Eclipse的Console輸出編碼不是UTF-8
就在改過Console編碼之後
便可看到正確的新宝科了

真的是很有趣的編碼問題啊…轉來轉去的煩死了…

補充:
這裡放了兩個UTF-8相關的網頁
可以在輸入一個字之後,得到其他的編碼值
http://rishida.net/scripts/uniview/conversion.php
http://www.cogsci.ed.ac.uk/~richard/utf-8.html

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>