Miksi tarvitset koodausta?
Tietokoneen pienin tallennusyksikkö on tavu (tavu), ja tavulla esitettävien merkkien määrä on rajallinen, 1 tavu = 8 bittiä, tavu voi edustaa korkeintaan 255 merkkiä, ja maailmassa on monia kieliä, on erilaisia merkkejä, joita ei voi esittää tavuna, joten Javan hahmon esitysmerkki ratkaisee tämän koodausongelman, yksi hahmo vie kaksi tavua, joten se täytyy koodata hahmon ja pienimmän yksikkötavun väliin. Päinvastainen on dekoodaus.
Itse asiassa koodaus ja dekoodaus on valmis käännösprosessi ("käännös" on helppo ymmärtää), ja erilaiset koodausmenetelmät ovat sanakirjoja.
1. ASCII-koodi
Koko nimi on American Standard Code for Information Interchange, joka on maailman yleisin yksitavuinen koodausjärjestelmä, jota käytetään pääasiassa nykyaikaisten englannin ja muiden länsieurooppalaisten kielten näyttämiseen.
ASCII-koodi esitetään 7 bittinä, joka voi esittää vain 128 merkkiä, ja 0~31 tarkoittaa ohjausmerkkejä kuten enter, backspace, delete jne.; 32~126 tarkoittaa, että painetut merkit voidaan syöttää näppäimistöllä ja ne voidaan näyttää.
Näistä 48~57 on 0–9 kymmenen arabialaista numeroa, 65~90 on 26 isoa englanninkielistä kirjainta, 97~122 on 26 pientä englannin kirjainta, ja loput ovat välimerkkejä, toimintosymboleja jne., jotka voivat viitata ASCII-standarditaulukkoon yksityiskohtia varten.
2、ISO-8859-1
Tämä koodaus on ASCII-koodauksen laajennus, mutta se on silti yksitavuinen koodaus ja voi esittää yhteensä vain 256 merkkiä.
Koska ASCII voi esittää vain 128 merkkiä, näyttöä ei voi täysin ilmaistaISO-8859-1 laajentaa ASCII-koodaustaASCII-koodin päälle lisätään länsieurooppalaisten kielten, kreikan, thai, arabian ja heprean, vastaavat tekstisymbolit, ja se on taaksepäin yhteensopiva ASCII-koodauksen kanssa.
3、GB2312
GB2312:n koko nimi on "Information Technology Chinese Encoding Character Set", joka on kahden tavun koodaus, jonka koodausalue on A1-F7, jonka symbolipinta-ala on A1-A9, yhteensä 682 symbolia; B0-F7 on kanji-alue, jossa on 6763 kanjia.
Koko nimi on Chinese character set for information exchange, jonka Kiina julkaisi vuonna 1980 ja jota käytetään pääasiassa kiinalaisen merkkien käsittelyyn tietokonejärjestelmissä. GB2312 sisältää pääasiassa 6763 kiinalaista merkkiä ja 682 symbolia.
GB2312 kattaa suurimman osan kiinalaisten merkkien käytöstä, mutta ei pysty käsittelemään harvinaisia erityisiä merkkejä, kuten muinaista kiinaa, joten koodit kuten GBK ja GB18030 ilmestyivät myöhemmin.
4、GBK
GBK:n koko nimi on "Chinese Character Internal Code Extension Specification", joka näytti laajentavan GB2312:ta; sen koodausalue on 8140-FEFE (poista XX7F), yhteensä 23940 koodibittiä, jotka voivat edustaa 21003 kiinalaista merkkiä, ja sen koodaus on yhteensopiva GB2312:n kanssa
GBK, Kiinan sisäisen koodimäärittelyn koko nimi, laadittiin vuonna 1995. Se laajentaa pääasiassa GB2312-merkkiä ja lisää lisää kiinalaisia merkkejä sen pohjalta, yhteensä 21 003 kiinalaista merkkiä.
GBK on taaksepäin yhteensopiva GB2312-koodauksen kanssa, mikä tarkoittaa, että GB2312:ssa koodatut kiinalaiset merkit voidaan purkaa normaalisti GBK:lla eivätkä ne näytä epäsekavilta, mutta GBK:lla koodatut kiinalaiset merkit eivät välttämättä puru GB2312:lla.
5、GB18030
GB18030 koko nimi on Chinese Character Internal Code Extension Specification, joka on uusin sisäinen koodimerkki, joka julkaistiin vuonna 2000 ja otettiin käyttöön vuonna 2001, sisältäen useimpien kiinalaisten etnisten vähemmistöjen kielimerkit, ja sisältää yli 70 000 kiinalaista merkkiä.
Se käyttää pääasiassa yksitavuista, kaksitavuista ja neljän tavun merkkikoodausta, ja se on taaksepäin yhteensopiva GB2312:n ja GBK:n kanssa, vaikka se on pakollinen standardi maassamme, mutta sitä käytetään harvoin varsinaisessa tuotannossa, ja yleisimmin käytetyt ovat GBK ja GB2312.
6.UNICODE
Jotta heidän kielensä näkyisi normaalisti tietokoneessa, jokaisella maalla ja alueella on oma koodinsa, joten kukaan ei tunne toistensa koodia, jos koodeja on liikaa. ISO-organisaatio ehdotti tuolloin uutta koodia nimeltä UNICODE-koodaus tukemaan globaaleja kulttuureja, merkkejä ja symboleja. Kun UNICODE muotoiltiin, tietokoneen kapasiteetti ei enää ollut ongelma, joten se suunniteltiin kiinteäksi kahden tavun mittaiseksi, ja kaikki merkit esitettiin 16 bittinä, mukaan lukien englanninkieliset merkit, jotka aiemmin täyttivät vain 8 bittiä, joten tilan hukka olisi jäänyt, eikä UNICODEa mainostettu eikä sovellettu pitkään aikaan.
7、UTF-16
UTF-16:n synty on ISO luodakseen uuden ylikielisen sanakirjan, jonka kautta kaikki maailman kielet voivat kääntää toisiaan – voit kuvitella, kuinka monimutkainen ja valtava tämä sanakirja on. UTF-16 käyttää kahta tavua Unicode-muunnosmuodon esittämiseen (kaksi tavua ovat 16 bittiä, joten UTF-16) on kiinteän pituinen esitysmenetelmä, eli mikä tahansa merkki voidaan esittää kahdessa tavussa. Tämä tekee hahmojen esittämisestä hyvin kätevää. Kuitenkin on myös virhe, eli suuri osa merkeistä voidaan esittää yhdessä tavussa, mutta UTF-16 käyttää kahta tavua, mikä on tallennustilan hukkaa. Joten on olemassa toinen koodaustapa, joka on UTF-8.
UTF-16 on UNICODEn erityinen toteutus, 16 on 16 bittiä, UTF-16 on alkuperä, joka määrittelee, miten UNICODE-merkit tallennetaan tietokoneeseen, UTF-16 käyttää myös kahta tavua minkä tahansa merkin esittämiseen, mikä tekee operaatiomerkkijonosta erittäin tehokkaan, mikä on myös tärkeä syy siihen, miksi Java käyttää UTF-16:ta merkkien tallennusmuotona muistiin.
UTF-16 soveltuu käytettäväksi levyn ja muistin välillä, ja merkkien ja tavujen muuntaminen toisistaan on yksinkertaisempaa ja tehokkaampaa, mutta se ei sovellu verkkosiirtoon, mikä voi vahingoittaa tavuvirtaa.
8、UTF-8
UTF-8 käyttää muuttuvan pituuden teknologiaa, jossa jokaisella koodausalueella on eri koodipituiset ja eri merkkityypit voivat koostua 1–6 tavusta.
UTF-8:n koodaussäännöt ovat seuraavat:
1) Jos se on 1 tavu ja korkein bitti on 0, se tarkoittaa, että kyseessä on 1 ASCII-merkki. On nähtävissä, että kaikki ASCII-koodaukset ovat jo UTF-8
2) Jos se on 1 tavu, alkaen 11:stä, peräkkäisten ykkösten määrä tarkoittaa tämän merkin tavujen määrää, esimerkiksi: 110xxxxx tarkoittaa, että se on kaksitavuisen UTF-8-merkin ensimmäinen tavu
3) Jos se on 1 tavua, alkaen 10:stä, se tarkoittaa, ettei se ole ensimmäinen tavu, vaan sinun täytyy odottaa eteenpäin saadakseen nykyisen merkin ensimmäisen tavun.
Vaikka UTF-16 on erittäin tehokas, se on myös UNICODEn suurin haittapuoli, sillä kaikkien yksitavuisten merkkien on otettava huomioon kaksi tavua, ja tallennustila kaksinkertaistuu, mikä selvästi kuluttaa resursseja eikä vastaa nykyistä Internetin nopeaa kehitystä. UTF-8:ssa se on muuttuvan pituisen merkkikoodauksen toteutus UNICODElle, joka voi käyttää 1~6 kiinteän pituisen tavun käyttöä UNICODE-merkkien koodaamiseen.
UTF-8 käyttää yhden tavun tallennustilaa ASCII-merkkeille, ja jos yksittäinen merkki vioittuu, se ei vaikuta seuraaviin merkkeihin, joten UTF-8 on ihanteellinen perinteiseen verkkokäyttöön ja yksi nykyään laajimmin käytetyistä koodauksista.
Jos haluat esittää kiinaa, UTF-8:n koodaustehokkuus on suurempi kuin GBK ja pienempi kuin UTF-16, joten se on myös ihanteellisin koodausmenetelmä GBK:n lisäksi. |