PTT編碼 - Linux

By Kama
at 2014-08-24T06:06
at 2014-08-24T06:06
Table of Contents
以下是 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 [email protected] 即可
--
以 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 [email protected] 即可
--
Tags:
Linux
All Comments

By Megan
at 2014-08-26T20:07
at 2014-08-26T20:07

By Jacob
at 2014-08-27T04:35
at 2014-08-27T04:35

By Hamiltion
at 2014-08-31T11:26
at 2014-08-31T11:26

By Eartha
at 2014-09-04T01:20
at 2014-09-04T01:20

By Zora
at 2014-09-07T06:35
at 2014-09-07T06:35
Related Posts
筆電螢幕設定為恆亮和永不休眠

By Ingrid
at 2014-08-22T23:15
at 2014-08-22T23:15
PTT編碼

By Oliver
at 2014-08-21T10:10
at 2014-08-21T10:10
新手安裝ubuntu問題

By Poppy
at 2014-08-20T17:01
at 2014-08-20T17:01
PTT編碼

By Daph Bay
at 2014-08-20T12:12
at 2014-08-20T12:12
關於桌電使用DLNA傳輸聲音至目標設備...

By Puput
at 2014-08-19T22:42
at 2014-08-19T22:42