【轉】日文編碼簡史

2010-05-25 15:03 我們在項目開發過程中經常會碰到如下幾個名詞" EUC編碼 ", " EUC_JP編碼 ", " EUC U90 ", " EUC S90 ", " Shift_JIS "等等,那麼這些名字表示的編碼表示什麼含義呢,本文旨在講述日文編碼的發展,以及解釋以上各個日文編碼名詞的真正含義,相信對你的日常開發會有幫助。 負責日本文字編碼工作的兩大機構 衆所周知,在計算機上只能存儲二進制的數字0,1,而在日常生活中用來交流的文字(例如:英文字母 A ),在計算機中是無法存儲的,爲了解決文字在計算機上的存儲問題,我們必須對文字進行數值化,也就是傳說中的“ 編碼 ”。例如在ASCII編碼體系中英文字符' A '的碼值爲“ 0x41 ”,所以如果運用ASII編碼,' A '存儲在計算機中就是' 1000001 '。 然而很多東方國家的文字比較龐大,不像英文字符,大小寫總共就52個字母,對其編碼是很簡單的。日本文字假名叫常用漢字就有幾千個,如何對日本文字進行編碼,這確實是一個 體力 與 智力 並存的工作。很顯然,你要想對日文進行編碼,首先你要做的就是你得知道日本有多少個文字(平假片假名)呢?這個問題恐怕不是一般人能夠回答的。所以在這個世界上有兩個組織機構來做這個工作,這就是傳說中的 ISO 和 日本國標(JIS: Japan Industry Standard) .這兩個組織負責收集所有日本語種所要到的文字,然後對其進行編碼工作。 ISO-2022-JP的日文編碼 ISO 2022,全稱ISO/IEC 2022,由國際標準化組織(ISO)及國際電工委員會(IEC)聯合制定,是一個使用7位編碼表示漢語文字、日語文字或朝鮮文字的方法。 ISO 2022等同於歐洲標準組織(ECMA)的ECMA-35、中國國標GB 2311、日本工業規格JIS X 0202(舊稱JIS C 6228)及韓國工業規格KS X 1004(舊稱KS C 5620)。具體可參考:http://zh.wikipedia.org/w/index.php?title=ISO/IEC_2022&variant=zh-cn。 關於這些編碼的詳細內容可以參考如下的RFC文檔: http://tools.ietf.org/html/rfc2237 RFC 1468, ISO-2022-JP的規格 RFC 2237, ISO-2022-JP-1的規格 RFC 1554, ISO-2022-JP-2的規格 以上編碼體系在我們的Symfoware中用的不是很多 日本國標(JIS)的日文編碼 JIS (Japanese Industry Standard),(http://www.jsa.or.jp) 日本工業標準協會。和中國的GB一樣,是制定日本國內各種標準的組織,這個組織也複雜對日本文字進行編碼,以用來進行信息交換。 JIS編碼是8位編碼類似於ISO/IEC-8859,JIS編碼方案經歷的如下幾個版本的變更: JIS X 0201 (JIS C 6220) (具體請參考http://zh.wikipedia.org/w/index.php?title=JIS_X_0201&variant=zh-cn) …… JIS X 0208 (具體請參考http://www.gaoshukai.com/20/06/0009/) …… JIS X 0213 (2000年) JIS 2004是對JIS X 0213的修正 (具體請參考:http://www.asahi-net.or.jp/~ax2s-kmtn/ref/jisx0213/index.html) 大體上來說,從JIS X 0201到JIS X 0213,每次版本的演進,都會加入新的日文漢字,具體如下: JIS X 0201 半角英數字、カナ (半角記號、半角英數字、半角カタカナ)(1バイト、2の8乗=256種類) JIS X 0208 JIS基本漢字 (全角記號、全角ひらがな、全角かたかな、漢字など)(2バイト、2の16乗=65536種類) JIS X 0212 JIS補助漢字 (使用頻度の低い漢字5,801字、非漢字266字、計6,067字) JIS X 0213 JIS拡張漢字 (第3水準の1,908字、第4水準の漢字2,436字、計4,344字(うち、漢字は3,685字)) 其它軟件廠商的日本編碼的實現 Miscrosoft 對日文的支持 MicroSoft要想對日文進行編碼,首先要知道日文有多少文字,正如前面所說的,這是個很難回答的問題,而且微軟也沒有必要去做這件事情,因爲這個事情JIS和ISO已經做了。微軟Windows操作系統上的日文編碼沒有直接使用ISO或者JIS的編碼系統,而是爲了適應其操作系統的特點,參考了JIS標準,自己開發了一套編碼系統。這就是我們平時所講的 Shift_JIS 或是 SJIS .關於這個編碼系統的詳細內容請參考:http://www.microsoft.com/globaldev/reference/dbcs/932.mspx. 既然我們已經說了, Shift_JIS 編碼系統是參考了 JIS 編碼系統,那麼這兩個編碼之間的關係是什麼呢?具體如下所示: 以下字符在Shift_JIS使用一個字節來表示。 ASCII字符 (0x20-0x7E),但“/”被“¥”取代 ASCII控制字符 (0x00-0x1F、0x7F) JIS X 0201標準內的半角標點及片假名(0xA1-0xDF) 在部分操作系統中,0xA0用來放置“不換行空格”。 以下字符在Shift_JIS使用兩個字節來表示。 JIS X 0208字集的所有字符 “第一位字節”使用0x81-0x9F、0xE0-0xEF (共47個) “第二位字節”使用0x40-0x7E、0x80-0xFC (共188個) 使用者定義區 “第一位字節”使用0xF0-0xFC (共47個) “第二位字節”使用0x40-0x7E、0x80-0xFC (共188個) 在Shift_JIS編碼表中,並未使用0xFD、0xFE及0xFF。 Unix系操作系統對日文的支持 Unix系操作系統下的日文編碼也沒有直接採用ISO和JIS的標準,它也創建了另一個編碼系統EUC (又稱爲UJIS)。 爲了說明EUC, EUC-JP, EUC-U90和EUC-S90之間的關係,我引用瞭如下一段關於這些編碼( 注意: 下面的EUC-JP就是指U90, EUC-JISX0213就是指S90)的定義的英文資料: Traditional one contains ASCII or JIS X 0201:1976/1997 left half (Japanese JIS Roman), JIS X 0208-1983 or JIS X 0208:1990/1997 (Japanese), JIS X 0201:1976/1997 right half (Japanese Katakana) and JIS X 0212:1990 (Japanese Supplement). This uses EUC-JP as preferred MIME name. After definition of JIS X 0213:2000, a brother was borned. It contains ASCII or JIS X 0201:1976/1997 left half (Japanese JIS Roman), JIS X 0213:2000 plane 1 and 2 (Japanese), JIS X 0201:1976/1997 right half (Japanese Katakana) and JIS X 0212:1990 (Japanese Supplement). This is called EUC-JISX0213 as preferred MIME name. Unicode編碼系統下的日文編碼 Unicode就是爲了解決統一的全球符號的編碼問題,關於Unicode編碼系統下日本的文字的編碼,可以參考:http://www.unicode.org/charts/ .這裏不作詳細闡述。 以上就是對整個日文編碼系統的簡單介紹,如有不對請指正,也歡迎補充

發佈了45 篇原創文章 · 獲贊 8 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章