作者[系統]
看板PttCurrent
標題[開發資訊] 新指令: SGR 66 一字雙色
時間Sun Sep 20 00:00:04 CST 2026
PTT 終端機通訊協定注意事項
新指令即將上線,請 App 開發者及早測試 & 更新。
指令: *[66m
* = ESC
預期行為: 把後面的屬性作為一字雙色的後半段著色,或是忽略。
上線時間: PTT1 - 9/20
PTT2 - 9/19
對「使用Big5連線」的Client 無影響,只對 UTF-8 連線生效,
或是使用者自己打開U->U裡的[禁止在雙位元中使用色碼(去除一字雙色)]
選項。
說明:SGR 66 - 一字雙色控制碼。
這不是真的標準 ANSI 碼,而是 PTTBBS 自訂的代碼 - SGR 66.
一字雙色是 Big5 編碼的產物,但它有很多問題,不管是與 Unicode (UTF-8)
不相容,或是編輯時的困難 (要關閉偵測中文字,且編輯中前後字元都變 ?),
都使得它成為 PTT 現代化的阻力之一。
ANSI 控制碼裡 60-65 是 CJK 表意文字的區域,所以我們打算建立一個非官方
標準給台灣的 BBS 使用,從 ECMA-48 裡找到了還沒使用的 66 來當一字雙色
的控制碼。若使用者的文章裡出現了 *[1;37;66;33m中*[m, 那麼在 PTT 站內
就會解釋成 "中的前半個字元顯示成高亮白色,後面黃色", 也就是之前的
一字雙色。 這個新標準需要伺服器端 (PTT) 與客戶端 (term.ptt.cc, 各大
App/WebBBS/...) 支援,所以需要時間。 由於它不是國際標準 (應該也不會
被 ANSI/ECMA 接受), 一般的終端機大概也不會處理,但好處是略過也就是直
接用後半部的顏色呈現,所以效果不會差太多,大概就跟現在在 PTT 上開 UTF-8
模式一樣。
預計的推進方式:
1. term.ptt.cc 支援用 SGR 66 顯示一字雙色
2. PTT 的輸出系統(pfterm)可讀SGR66,但只用在 UTF8 模式;Big5仍用原輸出模式
2. PTT 的編輯器更新說明,建議使用 SGR 66 (以上本週開始)
3. PTT 的編輯器關閉 Raw mode,強制新文章只能使用 SGR 66 (今年底前)
4. PTT 內部資料從 Big5 轉 UTF8 時,跑轉換器把所有的一字雙色改用 SGR 66 儲存
純 Big5 模式連線的 App 都不用改,只有 UTF-8 App 或是會貼 ASCII ART 的
工具程式建議加入此功能。
* SGR66 在別的 BBS 站的相容性?
目前只有 PTT1/PTT2 ,我們希望在未來推動之後可以增加也收 SGR66 的站台。
這是未來 Unicode 時代所必經之路 (或是只能捨棄一字雙色)。
* 給第三方程式開發者的建議
1. 如果你目前是用 Big5 與 PTT 連線,基本上不會收到,但請寫好收到不要當掉。
2. 如果你是用 UTF-8 連線,可選擇實作一字雙色,或是忽略這個代碼。
3. 如果你是 ASCII Art 的軟體開發者,建議加入切換 SGR66 的選項。