其實不知道該發在哪個板…但我記得GOOGLE相關問題時有看過LINUX板的文章,
所以就發在這了
最近在寫個讀PTT資料的程式,光在登入畫面我就不行了,讀出來的都是亂碼。經過無數
小時的努力,才發現PTT是用BIG5-UAO編碼。好,知道編碼就行。還好網路上也找的到
BIG5-UAO轉UNICODE的表(跟英文比要找中文資料真是無敵超級難,而且感覺有隨時沒資
料的可能)。
第一個困難點是,當我一個byte一個byte讀登入畫面的資料時,發現ASCII
和BIG5-UAO是混在一串的,ASCII一個字是1 byte,BIG5-UAO一個字是2 bytes。
但還好他們二個低位元的數值沒有重覆(在表裡面是這樣的),我可以先只讀一個位元
來判斷目前的值是不是ASCII,如果是就直接顯示,不是的話就和下個位元合在一起去
查BIG5-UAO轉UNICODE的表。
但傷腦筋的來了,讀到後來資料裡竟然有不在BIG5-UAO也不是ASCII的位元,請問
我該怎麼辦? 這個怪東西是 0x50A1。難道我哪裡搞錯了嗎?