LALA |
|
|||
日歷
導(dǎo)航留言簿(1)隨筆分類(31)
文章分類(4)收藏夾(21)搜索積分與排名
最新隨筆
最新評論
閱讀排行榜 |
字符集,指的是被分配了整數(shù)編號(hào)的字符集合;
但是,編碼字符集中字符被分配的整數(shù)編號(hào),不一定就是該字符在計(jì)算機(jī)中存儲(chǔ)時(shí)所使用的值; 計(jì)算機(jī)中存儲(chǔ)的字符到底使用什么二進(jìn)制整數(shù)值來表示,是由字符集編碼決定的。 字符集編碼決定了如何將一個(gè)字符的整數(shù)編號(hào)對應(yīng)到一個(gè)二進(jìn)制的整數(shù)值。 有的編碼方案簡單的將該整數(shù)值直接作為其在計(jì)算機(jī)中的表示而存儲(chǔ),例如英文字符。 幾乎所有的字符集編碼方案中,英文字母的整數(shù)編號(hào)與其在計(jì)算機(jī)內(nèi)部存儲(chǔ)的二進(jìn)制形式都一致。 但有的編碼方案,例如適用于Unicode字符集的UTF-8編碼形式,就將很大一部分字符的整數(shù)編號(hào)作了變換后存儲(chǔ)在計(jì)算機(jī)中。 以“漢”字為例,“漢”的Unicode值為0x6C49,但其編碼為UTF-8格式后的值為0xE6B189(注意到變成了三個(gè)字節(jié))。 GB2312最初指的是一個(gè)編碼字符集,其中包含了ASCII所包含的英文字符,同時(shí)加入了6763個(gè)簡體漢字以及其他一些ASCII之外的符號(hào)。GB2312也有自己的編碼方案,但這個(gè)方案直接使用一個(gè)字符在GB2312中的編號(hào)作為存儲(chǔ)值(與UTF-32的做法類似)。 我們?nèi)粘Uf起GB2312的時(shí)候,常常即指這個(gè)字符集,也指這種編碼方案。 GBK是GB2312的后續(xù)標(biāo)準(zhǔn),添加了更多的漢字和特殊符號(hào),類似的是,GBK也是同時(shí)指他的字符集和他的編碼。 GBK還是現(xiàn)如今中文Windows操作系統(tǒng)的系統(tǒng)默認(rèn)編碼(這正是幾乎所有網(wǎng)頁上的,文件里的亂碼問題的根源)。 在Java中,字符只以一種編碼形式存在,那就是UTF-16。 但“在Java中”到底是指在哪里呢?就是指在JVM中,在內(nèi)存中,代碼里聲明的每一個(gè)char,String類型的變量中。 Python中既可以按Ascii編碼,也可以按unicode編碼。 |
![]() |
|
Copyright © Dest | Powered by: 博客園 模板提供:滬江博客 |