Re: [問題] PTT編碼
以下是 supercon 給我的私信,幫了我很多。經過他同意我把它貼來板上,這樣以後就可
以 google 的到了!
-----
您好,我最近剛好也在寫讀PTT資料的程式
分享碰到的一些問題,希望能幫助您
1. 控制碼
ptt在輸出資料時會將一般字元和控制碼混合輸出
碰到這些控制碼時要再另外處理
像是控制游標的 *[H *[3;5H *[A *[B *[C *[D
或是清除畫面的 *[2J *[K
或是控制顏色的 *[m *[1;30m
//以上的*代表的是 控制字元 ESC (\x1B)
之前找的一些相關參考資料
http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlvt100.html
http://www.csie.ntu.edu.tw/~r88009/Java/html/Network/vt100.htm
https://en.wikipedia.org/wiki/ANSI_X3.64
2. 雙色字
一般的控制碼通常較容易處理,但雙色字是在一個字的兩個位元中插入顏色控制碼
例如 永 在Big5編碼後是 \xA5\xC3
但是使用雙色字後會變成像是 \xA5\x1B[33m\xC3
中間插入的 \x1B[33m 是顏色控制碼
如果用第一個位元判斷ASCII or Big5,就會把\xA5\x1B當成一個字,以至於出錯
這部份可能要再做例外處理
或是在PTT個人化設定裡開啟「l. DBCS 禁止在雙位元中使用色碼(去除一字雙色)」
3. 改用UTF-8
PTT有提供使用UTF-8編碼的功能
telnet
登入時於帳號後加上 ,
在登入後會自動改用UTF-8編碼
ssh
使用 ssh bbsu@ptt.cc 即可
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 76.182.127.99
※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1408831606.A.F7E.html
推
08/24 10:03, , 1F
08/24 10:03, 1F
推
08/24 10:10, , 2F
08/24 10:10, 2F
推
08/24 13:20, , 3F
08/24 13:20, 3F
推
08/24 17:17, , 4F
08/24 17:17, 4F
推
01/27 16:11, , 5F
01/27 16:11, 5F
討論串 (同標題文章)