EPGrab,是我拿 tv_grab_dvb 來改的一個小程式,算是對自己想過的〈不曉得有沒有辦法推 XMLTV 讓電視台廣為採用〉的一個起步。我修正了幾個地方,讓多位元組字元可以正常顯示。
根據 DVB 標準規範 EN 300 468,以及《台灣數位電視相關影音技術規範》,台灣(代碼 0x14)的 DVB 資訊文字編碼,很可能一開始就被誤讀,之後便一路錯下去,很多自由軟體、開放源碼軟體的實作都用 Big5,實則應該是「採用 Unicode/UTF16-BE 編碼 (encoding),ISO10646 字集 (character set),但是至少應該能夠顯示 Big5 有收錄的字」。包括 LinuxTV dvb-apps, Me-TV, Kaffeine 等,都弄錯了,或曾經弄錯。
tv_grab_dvb 的情況則更微妙,作者除了同樣弄錯台灣的編碼,亦沒有考慮到多位元組字元的情況,而使用 strlen() 函式去偵測節目資訊的字串長度,遇到 0x00 開頭的字元編碼,就直接掛了。我只好把這個問題修掉,否則此程式幾乎在台灣無用武之地。
基礎設施有了,接下來是拿輸出的 XMLTV 檔案來玩…。