PTT編碼 - Linux

Kama avatar
By Kama
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] 即可


--
Tags: Linux

All Comments

Megan avatar
By Megan
at 2014-08-26T20:07
Jacob avatar
By Jacob
at 2014-08-27T04:35
應該可以直接放棄telnet走ssh就好?
Hamiltion avatar
By Hamiltion
at 2014-08-31T11:26
除非你是暴露狂,不然都應該走 ssh 吧…
Eartha avatar
By Eartha
at 2014-09-04T01:20
Zora avatar
By Zora
at 2014-09-07T06:35
有用的資訊推

筆電螢幕設定為恆亮和永不休眠

Ingrid avatar
By Ingrid
at 2014-08-22T23:15
作業系統是 CentOS 7 桌面環境是 KDE 發現放太久不動關螢幕後會當機 很麻煩 不知道要怎麼辦 - ...

PTT編碼

Oliver avatar
By Oliver
at 2014-08-21T10:10
我誤以為我的bytes是big endian,其實它是little endian。把程式修正之後終於看的 到大部分的字了 其實我就是看了PCMAN-GTK2才放心下去做。先用低位元來判斷它是屬於BIG5還是ASCII。 不同的是,如果都不屬於這二種編碼,PCMAN是把低位元變成UTF8裡的 \xE2\x96 ...

新手安裝ubuntu問題

Poppy avatar
By Poppy
at 2014-08-20T17:01
家裡有一台xp的老電腦想要灌ubuntu 看了網路教學用unetbootin做成usb安裝 但是一進入ubuntu就出現下圖錯誤 有google過但是都是英文T_T http://i.imgur.com/eINtTzQ.jpg 硬體配備 cpu: Intel Core 2 duo 4300 at 1. ...

PTT編碼

Daph Bay avatar
By Daph Bay
at 2014-08-20T12:12
其實不知道該發在哪個板…但我記得GOOGLE相關問題時有看過LINUX板的文章, 所以就發在這了 最近在寫個讀PTT資料的程式,光在登入畫面我就不行了,讀出來的都是亂碼。經過無數 小時的努力,才發現PTT是用BIG5-UAO編碼。好,知道編碼就行。還好網路上也找的到 BIG5-UAO轉UNICODE的表(跟 ...

關於桌電使用DLNA傳輸聲音至目標設備...

Puput avatar
By Puput
at 2014-08-19T22:42
※ 引述《zerotech (輪班好累)》之銘言: : 家裡有片Raspberry Pi,因為我實在太不熱血以致它閒置了好一段時間。 : 後來裝了Volumio系統把它變成有DLNA功能(大概吧?)的音樂播放器, : 一般的使用方法是將隨身碟接到RPi上,再用網頁介面控制播放(而且要配DAC跟好喇叭)。 : ...