[問題] PTT編碼

看板Linux作者 (日夜顛倒)時間11年前 (2014/08/20 12:12), 編輯推噓17(1708)
留言25則, 20人參與, 最新討論串1/3 (看更多)
其實不知道該發在哪個板…但我記得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。難道我哪裡搞錯了嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 76.182.127.99 ※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1408507973.A.686.html

08/20 14:03, , 1F
pcman是不是開源碼的?你可以翻一下他們的source
08/20 14:03, 1F

08/20 14:03, , 2F
code去看他們怎麼處理這個問題
08/20 14:03, 2F

08/20 14:17, , 3F
我猜是一字雙色造成的
08/20 14:17, 3F

08/20 15:57, , 4F
ptt有輸出utf-8耶 帳號後打, 或直接ssh bbsu@ptt.cc
08/20 15:57, 4F

08/20 21:10, , 5F
一字雙色就是把BIG5的2byte之間插色碼...
08/20 21:10, 5F

08/20 22:40, , 6F
那個編碼怪怪的是因為... 0x50 是 P 這個字??
08/20 22:40, 6F

08/20 22:53, , 7F
你先用utf-8試試看 不行的話我再回文 最近剛好也遇過這個
08/20 22:53, 7F

08/20 23:43, , 8F
輸出0x50, 把0xa1和下一個byte合成big5
08/20 23:43, 8F

08/20 23:44, , 9F
懶人法, 直接用iconv/icu把big5字串轉成utf8字串
08/20 23:44, 9F

08/21 00:47, , 10F
ssh 上 PTT 的站出來!
08/21 00:47, 10F

08/21 11:52, , 11F
ssh+1
08/21 11:52, 11F

08/21 12:07, , 12F
不知道 pcmanx 能不能增加支援 ssh....
08/21 12:07, 12F

08/21 12:47, , 13F
pcmanx 一直都支援 ssh ,只是要改設定檔
08/21 12:47, 13F

08/21 12:52, , 14F
ssh 連線跟密技一樣 XD
08/21 12:52, 14F

08/21 16:07, , 15F
ssh+1
08/21 16:07, 15F

08/21 20:41, , 16F
SSH+1
08/21 20:41, 16F

08/22 02:46, , 17F
當然用 ssh ..
08/22 02:46, 17F

08/22 10:16, , 18F
pietty +1
08/22 10:16, 18F

08/22 13:54, , 19F
請愛用ssh bbsu@ptt.cc XD
08/22 13:54, 19F

08/22 15:15, , 20F
ssh++
08/22 15:15, 20F

08/24 06:39, , 21F
我覺得帳號後面打, 這個纔是密技吧,我現在才知道 XD
08/24 06:39, 21F

08/24 10:50, , 22F
登入時帳號後加',' 像你帳號原本sdriver改sdriver,
08/24 10:50, 22F

08/24 10:50, , 23F
進去後自然會變UTF-8
08/24 10:50, 23F

08/24 20:51, , 24F
luit -encoding big ssh bbs@ptt.cc
08/24 20:51, 24F

08/25 05:46, , 25F
telnet當然是騙別人用(?
08/25 05:46, 25F
文章代碼(AID): #1Jz215Q6 (Linux)
討論串 (同標題文章)
文章代碼(AID): #1Jz215Q6 (Linux)