close
以往在 Unicode 不普及的時候,我們的地方編碼裡頭就有全型及半型之分,例如英文字母 a 這是半型,但在我們 Big-5 碼中也有相對的全型的字母 a。半型的 a 是 one byte,全型的 a,是 two bytes。
但是,這其實和幾個 byte 無關,而是半型是佔字型的 em 框的一半寬度,全型字則是佔字型 em 框的整個寬度。否則目前的 UTF-8 編碼,中文字豈不是都是一又二分之一型?或更寬的型?所以,目前 Unicode 並不全依這個來分類字型寬度,而是有許多情況,需視所在的內文是屬於什麼 locale 來做寬度調整的。
在 Unicode 裡頭是只編碼位,而不涉及 glyph 本身的形狀,因而會有些字寬不確定的情況(Ambiguous)。有些以往半型、全型的字都有編兩個碼位給他,例如上述的英文字母 a,有些則沒有,例如 U00A7 這個 section 符號,就只有一個碼位。因此。在 EastAsianWidth.txt 裡頭,是標示為 A(Ambiguous)。他是要佔 em size 的一半或是整個,要視字型製作者而定,要給東方語系用的字型,會造成全型,要給西方語系用的字型,會造成半型。
這是在討論一些終端機模擬程式時會碰到的問題,尤其是要連進 bbs 系統裡頭的時候,這個沒分清楚,那麼畫面就會亂掉,那要如何解決呢?據我目前所知,並沒有完整解決方案,只能說我們要進 bbs 的,要用特定的字型,把半型、全型字造正確,而且,bbs server 這端也要依相同的規則來分辨是半型或者是全型,否則就會天下大亂。
很多人倡言 bbs 該改用 UTF-8 編碼,使用 Big-5 已經落伍了,這很好,但請這些人士,告訴我們該如何解決這個問題先。
全站熱搜
留言列表