所有程序必須掌握的字符集和編碼技術

好久沒有來看看自己的博客了, 最近再看一些書,很有啓發;寫了一些摘要,希望對大家有幫助;;

 

 

以前8位pc上使用ACSII編碼表示各個字符;它能夠用32 到 127 之間的數字表示各個字符.(當時的字符集是無重音字母);; 空格編碼:32   字母A 編碼   65;
這種編碼能夠方便的用七個二進制位來表示;; 因有8位的空間, 我們可以把128----255的編碼用作其它的用途;;不同的地方有不同的使用用途;;
 
亞洲國家的字符表有成千上萬個字符,無法用一個字節編碼表示; 就引入了DBCS雙字節系統; 這個字符系統將一些字符存儲位一個字節, 而讓另外一些佔據兩個字節;
 
 
注意:: 一個字節就是一個字符,以及一個字符就是8個二進制位,,是沒有移植性的;;;
 
 
Unicode字符集:: 它試圖包括地球上的所有合理的文字體系;;
Unicode組織爲各種字母表中的每個理想化的字母分配一個神奇的符號U+067.後面這些數字是16進制的;; Unicode能夠定義的字母個數沒什麼限制,其實實際用的已經遠超出65536個;; 可見並不是每個Unicode字母都能真正擠壓成兩個字節;;
 
 
編碼知識;;
Unicode有幾種編碼方式;傳統的是Ucs-2或UTF-16;;有高低模式位;;全部2字節編碼;;;
另一種UTF-8模式,採用1字節,2字節,3自己,甚至6字節編碼;;
utd—7用7位表示一個字符,高位是0;;
 
 
不管用什麼編碼方案來來編碼Unicode字符串”Hello”(U+0048; U+0065; U+006c; U+006c; U+006f),只要抓住一點:::字母可能是不出現的,如果試圖使用的編碼方案中沒有相應的Unicode代碼點的等價內容;通常會顯示一個小問號”?”;或者更爲先進一點顯示一個方框;;
 
傳統的編碼方式不下幾百種,,不過它們僅僅能正確的存放一些代碼點, 將所有的其它代碼點轉變成問號,流行的英語文本編碼方案有 Windows-152與ISO-8859-1即Latin-1(同樣對任何西歐語種都有用);;不過如果試圖用這種編碼方試來存放俄語&西伯萊語字母;那麼得到結果將是一簇問號;;UTF 7,8,16與32都能正確的存放任何代碼點的良性特性;;
 
 
極其重要的一件事:: 有一個字符, 如果不知道它所使用的編碼方案試毫無意義的;
 
不用遐想,純文本就是ASCII;;
如果再內存,文件,電子郵件中有一個字符串,那麼應該知道它使用的是什麼編碼方案,否則,就不能正確的顯示或解釋給用戶

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章