Posts Tagged ‘ 外字

Big5碼與Unicode碼之差異性

由於hugo每天都要在字碼中打滾,自然而然的對各種編碼有較基本的認知,也發現到一般的使用者,或是資訊相關人員其實對字碼的部份也不甚了解,所以在這前提之下讓hugo想把兩者的差異性寫成較簡單的文章,供大家參考。在此文章內將先不論兩者編碼之規範,單純以收錄字數做單一比較。

「何謂Big5」

以下轉載自Wiki

「五大碼」(Big5) 是在1984年台灣13家廠商製作開發五大中文套裝軟體,由中華民國財團法人資訊工業策進會為五大中文套裝軟體所設計的中文內碼,所以就稱為Big5中文內碼,雖然五大套裝軟體並沒有成功,但隨著採用Big5碼的國喬中文系統及倚天中文系統先後在台灣市場獲得成功,使得Big5碼深遠地影響正體中文電腦內碼,直至今日[2][3]。「五大碼」的英文名稱「Big5」後來被人按英文字序譯回中文,以致現在有「五大碼」和「大五碼」兩個中文名稱。

但因在制定編碼時沒有考量到人名、地名等常用字,所以像是堃、峯、喆、綉等字在以Big5為編碼的系統上是無法顯示的,如早期的Windows98。

「何謂Unicode」

以下轉載自Wiki

Unicode是由於傳統的字元編碼方式的侷限性而產生的,例如 ISO 8859 所定義的字元雖然在不同的國家中廣泛地使用,可是在不同國家間卻經常出現不相容的情況。很多傳統的編碼方式都具有一個共通的問題,即其容許電腦進行雙語環境式的處理(通常使用拉丁字母以及其本地語言),但卻無法同時支援多語言環境式的處理(指可同時處理混合多種語言的情況)。

Unicode試圖將字位(字素,graphemes)與類字位字元加以認定與編碼,而非以不同的字形(glyphs)來加以區分。然而在漢字的個案來看,這樣方式有時會引起一字多形的認定爭議(詳見中日韓統一表意文字主題)。

看上述的解釋其實有點複雜,以較簡單的方式說明則是「Unicode整合了各國不同之語系並給與標準化」,其中當然也包括了正體中文,簡體中文等。

「Big5與Unicode的差異」

接下來有了基本的認知後,應該就可以知道Unicode是一個比較大的字集,因為收錄了各國的字型,但其中的CJK,其中也包含了原本Big5所收納的字數,如下圖所示。

說明

而這些差異字就高達7,399字,這些字也包含了大部份的人名罕字及地址罕字等。簡單講這也就是big5跟unicode的主要差異性。

這是hugo第一次寫關於中文字碼的文章,盡量是以簡單的方式來說明,雖然可能乏味了點,不過如果想更進一步的了解都可以留言給我 :-P


ReportViewer Export to PDF

最近實在是有點懶的寫blog,一半是工作,一半是blog都會出現亂碼,要手動調編碼才會正常,上星期花了點時間把整個wordpress重新安裝,並換了個theme,測試幾天下來都還蠻正常的,廢話不多說,正式開工嚕。

在工作上的有遇到外字轉PDF的問題,至於要怎麼轉就不在此篇的討論範圍內,此文章主要討論如何判定PDF的正確性,其實最簡單的方式就是開啟PDF並按「Ctrl + D」來檢示內容,如下圖所示

一份正確的PDF必定會把字型內嵌進去,在客戶那邊有遇到一個問題,就是字型沒有嵌入進去,如下所示,

http://farm4.static.flickr.com/3147/2604267036_3117347f52.jpg

但開啟PDF一樣可以看到正確的字碼,但要如何的判斷此份PDF文件是否正常? 正確的PDF文件是可以copy & paste的,只要copy PDF的一段文字,並貼在notepad上,如可顯示copy的文字,這表示至少此PDF文件還算正常,在我客戶的例子是沒辦法正確的貼上,這時就要使用ultraedit來看一下PDF的「字碼」是否正確了,從PDF挑了「訊」這個字,訊的big5碼是「B054」,Unicode碼是「8A0A」,我在同一份PDF裡面挑了兩個不同位置的「訊」字,理論上就算位置的不同,但字碼還是一樣要相同,奇妙的事情發生了,如下圖所示,

http://farm4.static.flickr.com/3190/2604258028_195265d4a2_o.png

訊字是用4 byte所顯示,而且兩個訊字的碼位都不同,在UTF-8的格式裡面,只有Ext.B字面才會用到4-6 byte,UTF-16也是在Ext.B才會用到4 byte,由此可以看出此份PDF確實是有問題的。

後來尋問了一下客戶是用什麼方式轉PDF的,對方告知是用ReportViewer來轉存的,搜尋了微軟,發現如下兩篇文章文章一文章二,更可以確定目前ReportViewer轉存PDF是有問題的。

使用者定義字元 (EUDC) 無法正確顯示

最近工作上遇到一個很怪的問題,就是在系統外字區有定義文字,但從軟體上看到的卻是韓文,打出來也是韓文,這問題是微軟系統本身造成的,是M$內建的某些字型影響到了外字區,所以會造成此種問題。相關的更新要跟微軟索取Hotfix,是不用收費的,但前提是你要是正版軟體。在XP SP1底下有另外一種作法,那就是刪掉系統內建的NEW Glium字型。

相關KB:在 Windows XP 和 Windows Server 2003 中無法正確顯示某些字元從結束使用者定義字元 (EUDC) 字型