See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 4124|Vastuse: 1

Erinevus ASCII koodi, ISO8859-1, Unicode, GBK ja UTF-8 vahel

[Kopeeri link]
Postitatud 11.12.2022 14:01:58 | | |
Miks sul on vaja koodi?

Arvuti väikseim salvestusüksus on bait (bait) ja baitiga esitatavate märkide arv on piiratud, 1bait=8 bitti, bait võib esindada maksimaalselt 255 märki ning maailmas on palju keeli, on erinevaid märke, mida ei saa esitada baidina, seega on Java märgi esitusmärk selle kodeerimisprobleemi lahendamiseks, üks tegelane hõivab kaks baiti, seega tuleb see kodeerida märgi ja väikseima ühikbaidi vahel. Vastupidine on dekodeerimine.

Tegelikult on kodeerimine ja dekodeerimine lõpetatud tõlkeprotsess ("tõlge" on lihtne mõista) ning erinevad kodeerimismeetodid on sõnastikud.

1. ASCII kood

Täisnimi on American Standard Code for Information Interchange, mis on maailma kõige levinum ühebaidiline kodeerimissüsteem, mida kasutatakse peamiselt kaasaegsete inglise ja teiste Lääne-Euroopa keelte kuvamiseks.

ASCII kood on esindatud 7 bitiga, mis võib esindada vaid 128 märki, ning 0~31 tähistab juhtmärke nagu enter, backspace, delete jne; 32~126 tähendab, et trükitud märke saab sisestada klaviatuuri kaudu ja neid saab kuvada.

Nende seas on 48~57 0 kuni 9 kümmet araabia numbrit, 65~90 on 26 suurt inglise tähte, 97~122 on 26 väikest inglise tähte ning ülejäänud on mõned kirjavahemärgid, operatsioonisümbolid jne, mis võivad viidata ASCII standardtabelile detailide jaoks.

2、ISO-8859-1

See kodeerimine on ASCII kodeerimise laiendus, kuid see on siiski ühebaidiline kodeering ja suudab esindada vaid 256 märki.

Kuna ASCII suudab esindada vaid 128 märki, ei saa kuva täielikult väljendadaISO-8859-1 laiendab ASCII kodeerimistASCII-koodi peale lisatakse vastavad tekstisümbolid Lääne-Euroopa keeltest, kreeka, tai, araabia ja heebrea keelest ning see on tagurpidi ühilduv ASCII kodeerimisega.

3、GB2312

GB2312 täisnimi on "Information Technology Chinese Encoding Character Set", mis on kahebaidine kodeering kodeerimisvahemikuga A1-F7, mille sümbolipiirkond on A1-A9, kokku 682 sümbolit; B0-F7 on kanji ala, mis sisaldab 6763 kanjit.

Täisnimi on Chinese Character Set for Information Exchange, mille Hiina avaldas 1980. aastal ja mida kasutatakse peamiselt hiina märgitöötluseks arvutisüsteemides. GB2312 sisaldab peamiselt 6763 hiina märki ja 682 sümbolit.

GB2312 katab suurema osa hiina märkide kasutusest, kuid ei suuda käsitleda haruldasi erimärke, nagu iidne hiina keel, mistõttu ilmusid hiljem koodid nagu GBK ja GB18030.

4、GBK

GBK täisnimi on "Hiina märgi sisemise koodi laienduse spetsifikatsioon", mis näib laiendavat GB2312, selle kodeerimisvahemik on 8140-FEFE (eemalda XX7F), kokku 23940 koodibitti, mis võib esindada 21003 hiina märki, ning selle kodeerimine on ühilduv GB2312-ga

GBK, Hiina sisemise koodispetsifikatsiooni täisnimi, formuleeriti 1995. aastal. See laiendab peamiselt GB2312 ja lisab oma põhjal rohkem hiina märke, mis sisaldab kokku 21 003 hiina märki.

GBK on tagurpidi ühilduv GB2312 kodeerimisega, mis tähendab, et GB2312-s kodeeritud hiina märgid saab GBK-ga normaalselt dekodeerida ega tundu segased, kuid GBK-ga kodeeritud hiina märgid ei pruugi olla dekodeeritud GB2312-ga.

5、GB18030

GB18030 täisnimi on Hiina tähemärgi sisemise koodi laienduse spetsifikatsioon, mis on viimane sisemine koodimärgikomplekt, mis avaldati 2000. aastal ja jõustus 2001. aastal, hõlmates enamiku Hiina etniliste vähemuste keelemärke ning sisaldab üle 70 000 hiina märgi.

See kasutab peamiselt ühe-, kahe- ja neljabaidilist märgikodeerimist ning on tagurpidi ühilduv GB2312 ja GBK-ga, kuigi see on meie riigis kohustuslik standard, kuid seda kasutatakse harva tegelikus tootmises ning kõige enam kasutatakse GBK ja GB2312.

6.UNICODE

Selleks, et nende keel oleks arvutis normaalselt kuvatav, on igal riigil ja regioonil oma kood, nii et keegi ei tea üksteise koodi, kui koode on liiga palju; sel ajal pakkus ISO organisatsioon välja uue koodi nimega UNICODE kodeerimine, et toetada globaalseid kultuure, tähemärke ja sümboleid. Kui UNICODE formuleeriti, polnud arvuti maht enam probleem, seega oli see fikseeritud kahe baidi võrra ning kõik märgid esitati 16 bitis, sealhulgas ingliskeelsed märgid, mis varem hõivasid vaid 8 bitti, mis tähendas ruumiraiskamist, ning UNICODE'i ei edendatud ega rakendatud pikka aega.

7、UTF-16

UTF-16 tekkimine on ISO eesmärk luua uus supralingvaalne sõnastik, mille kaudu kõik maailma keeled saavad üksteist tõlkida, võite ette kujutada, kui keeruline ja tohutu see sõnastik on. UTF-16 kasutab Unicode'i teisendusformaadi esitamiseks kahte baiti (kaks baiti on 16 bitti, seega UTF-16) on fikseeritud pikkusega esitusmeetod, mis tähendab, et iga tähemärki saab esitada kahe baidina. See teeb tegelaste kujutamise väga mugavaks. Siiski on ka viga – suur osa tähemärkidest saab esitada ühes baidis, kuid UTF-16 kasutab kahte baiti, mis on salvestusruumi raiskamine. Seega on olemas teine kodeerimisviis, see on UTF-8.

UTF-16 on UNICODE'i spetsiifiline rakendus, 16 on 16 bitti, UTF-16 on alguspunkt, mis määrab, kuidas UNICODE tähemärgid arvutis salvestatakse, UTF-16 kasutab ka kahte baiti, et esindada ükskõik millist märki, mis teeb operatsioonijada väga tõhusaks, mis on ka oluline põhjus, miks Java kasutab UTF-16 formaadina märkide salvestamiseks mällu.

UTF-16 sobib kasutamiseks ketta ja mälu vahel ning märkide ja baitide omavaheline teisendamine on lihtsam ja tõhusam, kuid see ei sobi võrguedastuseks, mis võib kahjustada baitide voogu.

8、UTF-8

UTF-8 kasutab muutuva pikkusega tehnoloogiat, kus igal kodeerimispiirkonnal on erinev koodipikkus ja erinevat tüüpi märgid võivad koosneda 1–6 baidist.

UTF-8 kodeerimisreeglid on järgmised:

1) Kui see on 1 bait ja kõrgeim bitt on 0, tähendab see, et tegemist on 1 ASCII märgiga. On näha, et kõik ASCII kodeeringud on juba UTF-8

2) Kui see on 1 bait, alustades 11-st, siis järjestikuste 1-de arv tähendab selle märgi baitide arvu, näiteks: 110xxxxx tähendab, et see on kahe baidilise UTF-8 märgi esimene bait

3) Kui see on 1 bait, alustades 10-st, tähendab see, et see ei ole esimene bait, vaid pead ootama, et saada praeguse märgi esimene bait.

Kuigi UTF-16 on väga tõhus, on see ka UNICODE-i suurim puudus, mistõttu kõik ühebaidilised märgid peavad arvestama kahe baitiga ning salvestusruum on kahekordne, mis ilmselgelt tarbib ressursse ega vasta praegusele interneti kiirele arengule. UTF-8 puhul on see muutuva pikkusega UNICODE märgikodeerimise rakendus, mis suudab kasutada 1~6 fikseeritud pikkusega baiti UNICODE märkide kodeerimiseks.

UTF-8 kasutab ASCII märkide jaoks ühebaidist salvestusruumi ning kui üks märk rikutakse, ei mõjuta see järgmisi märke, seega sobib UTF-8 traditsiooniliseks veebis ja on tänapäeval üks laialdasemalt kasutatavaid kodeeringuid.

Kui soovid esitada hiina keelt, on UTF-8 kodeerimise efektiivsus suurem kui GBK ja väiksem kui UTF-16, seega on see ka kõige ideaalsem kodeerimismeetod peale GBK.




Eelmine:Liigne mälu tugevdamine/vahemälu kasutus Linuxis
Järgmine:Varafaili "project.assets.json" ei leita. Käivita NuGet paki taastamine...
Postitatud 30.12.2022 14:43:17 |
Sain aru, utf-8-ga
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com