這些編碼,早些時(shí)候在一些應(yīng)用軟件中經(jīng)常看到,估計(jì)很多朋友也看到了,這些編碼了!
從這個(gè)圖,我們可以看到這類(lèi)編碼應(yīng)用很廣泛,那么我們一起看看,iso-8859-1字符集,到底是什么樣字符集,有那些字符!為什么,它應(yīng)用可以這么廣泛!
計(jì)算機(jī)上面流行第一個(gè)字符集,是ascii碼,是0-127 一個(gè)128字符。每個(gè)字符在里面有個(gè)對(duì)應(yīng)編號(hào),分別是0-127。如果用二進(jìn)制表示,剛好是7位。這個(gè)字符集,在前期表示英文字符已經(jīng)足夠。后來(lái),隨著計(jì)算機(jī)普及,越來(lái)越多國(guó)家(歐洲),開(kāi)始應(yīng)用計(jì)算機(jī),他們發(fā)現(xiàn)7位,共128字符。已經(jīng)不能描述他們常用的字符了。因此想到要兼容ascii字符集,就指定了擴(kuò)展ASCII字符集。最多是0-255,256個(gè)字符。其中0-127 128字符及位置編碼 完全兼容ascii碼。只是擴(kuò)展了128-255位置編入了新字符!
該字符集,完全兼容ascii字符集,并且是剛好可以用一個(gè)字節(jié)表示里面所有字符位置。又稱(chēng)為擴(kuò)展Ascii碼!這也是第一個(gè)iso-8859-1字符集。又叫:Latin-1 編碼(西歐編碼),后來(lái)陸續(xù)出了iso-8859-2…-15字符集。都是完全兼容ascii碼的。
說(shuō)下幾個(gè)概念吧,什么是字符集,什么是字符編碼?
1、字符集,表示由一些指定的字符的所組成集合!ascii字符集,里面有128個(gè)字符
2、字符編碼,每個(gè)字符集中字符,都有一個(gè)固定的編號(hào),也叫該字符在字符集中的的編碼!如:ascii字符集中,a 字符編碼是97。
相同字符,會(huì)出現(xiàn)在多個(gè)字符集中嗎,相同字符在不同字符集中編碼一樣嗎?
從上面例子,我們可以看到,ascii字符集、iso-8859-1字符集 有128個(gè)字符相同的。經(jīng)常相同的字符,可以出現(xiàn)在各個(gè)字符集中。但是,每個(gè)字符集對(duì)字符編號(hào)方式可能不同,因此,相同字符,在不同字符集中,編碼結(jié)果可能不一樣。當(dāng)然,也有一樣的!象ascii中所有字符編碼,在iso-8859-1字符集中,都一樣的。
弄清楚關(guān)于、字符集,字符編碼概念。我們還有幾個(gè)必須掌握的。就是,計(jì)算機(jī)是怎么樣儲(chǔ)存,顯示字符的呢?
一個(gè)文件有很多符號(hào)組成,各式各樣的!實(shí)際,計(jì)算機(jī)在存儲(chǔ)時(shí)候,只是寫(xiě)入該字符所對(duì)應(yīng)的字符編碼值。將它存于磁盤(pán)或者在網(wǎng)絡(luò)中傳輸!如果要顯示時(shí)候,通過(guò)對(duì)應(yīng)字符集中,字符編碼值。然后可以轉(zhuǎn)換到計(jì)算機(jī) 通用的字符集的對(duì)應(yīng)字符編碼。計(jì)算機(jī)每個(gè)字符形狀,圖像長(zhǎng)相,都在字體中。然后,通過(guò)轉(zhuǎn)換得到通用字符集的字符編碼,找到對(duì)應(yīng)的字符,及字體形狀,然后顯示出來(lái)!
字符在計(jì)算機(jī)存儲(chǔ)、傳輸都是該字符所在字符集中編碼值
好了,中間我們對(duì)字符概念做了很多的闡述、說(shuō)明!下面,我們繼續(xù)本頁(yè)主題iso-8859-1字符集了。 它為什么能夠這么廣泛應(yīng)用呢?
我們知道,單字節(jié)最多可以表示256字符,實(shí)際上很多字符(目前unicode有幾十萬(wàn)字符),都需要用多個(gè)字節(jié)來(lái)存儲(chǔ)!計(jì)算機(jī)在存儲(chǔ)傳輸都以字節(jié)為單位!因此單字節(jié)的: iso-8859-1 是存儲(chǔ)的最小單元。所以,無(wú)論你是多少個(gè)字節(jié)組成的字符,以單字節(jié)一個(gè)一個(gè)存儲(chǔ)、傳輸!都不會(huì)改變?cè)瓉?lái)的值,都可以很好保存它的值!計(jì)算機(jī)亂碼,出現(xiàn)在顯示的時(shí)候,在不正確的字符集中,查找對(duì)應(yīng)字符編碼的字符!經(jīng)常是,編碼選擇字符集,跟做顯示選擇字符集不一致造成的!
在復(fù)制文件、傳輸文件不會(huì)造成字符編碼問(wèn)題。而出現(xiàn)問(wèn)題時(shí)候,是字符做顯示,或者將顯示字符存儲(chǔ)的時(shí)候,會(huì)出現(xiàn)問(wèn)題!好了,這里面說(shuō)的是iso-8859-1 其實(shí),更多的是說(shuō)說(shuō),字符編碼的一些常識(shí)!明白這些,對(duì)于iso-8859-1的一些特點(diǎn)理解,可能 更容易了!
可能以前有朋友就問(wèn),我mysql是存中文的,為什么我選擇字符集是Latin-1 ,是不是就出現(xiàn)亂碼了。其實(shí)不會(huì),它只是將接到任何字節(jié),按照單字節(jié),逐個(gè)逐個(gè)存儲(chǔ)的。然后,讀取時(shí)候,也逐個(gè)逐個(gè)字節(jié)的讀出。沒(méi)有改變?nèi)魏伪4鎯?nèi)容,也沒(méi)有做任何編碼轉(zhuǎn)換!這是,最為安全的!好了,就到這里了,歡迎朋友們交流!