所謂的中文內碼不過是 ASCII 字元的組合值, 中文字 BIG5 以兩個 ASCII
字元組合而成, 就像是 SHORT, 或 INTEGER 短整數是兩 Bytes 一樣.
但是中文的兩 Bytes 組合因為想混用英文顯示, 所以做了特殊編排.
另外中文兩 Bytes 組合有別稱, 前面字元稱 High Byte, 後面字元稱 Low Byte.
所以只要你知道中文 High/Low byte 的範圍, 簡單的以雙迴圈產生那兩個 ASCII 值,
再開檔丟出去即可.
所以, 將底下的程式: 丟給 QB 或貼在 VB form_load 函數中執行一下,
再到 c:\ 下撿檔案 B5Tab.txt.
至於中文系統怎麼辨認是中文或英文? 那就是倚賴中文字永遠以 &H81 起始.
只要看到檔案行中有這個值 &H81, 便把連續的兩 Bytes 視為中文解釋.
中文系統抓出這兩 Bytes, 再自行查表找點陣資料, 最後在銀幕上相同的位置
秀出中文字點陣. 這就完成中文顯示.
DEFINT A-Z
' 高位元組(High Byte): &H81 - &HFE
' 低位元組(Low Byte): &H40 - &H7E, &HA1 - &HFE
FileName$ = "c:\B5Tab.txt"
FOOut = FREEFILE
OPEN FileName$ FOR OUTPUT AS #FOOut
cnt& = 0
FOR i = &H81 TO &HFE
FOR lo = &H40 TO &H7E
cnt& = cnt& + 1
IF cnt& >= 5025 THEN PRINT #FOOut, CHR$(i); CHR$(lo)
NEXT lo
FOR lo = &HA1 TO &HFE
cnt& = cnt& + 1
IF cnt& >= 5025 THEN PRINT #FOOut, CHR$(i); CHR$(lo)
NEXT lo
NEXT i
CLOSE #FOOut
END