Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 4124|Atbildi: 1

Atšķirība starp ASCII kodu, ISO8859-1, Unicode, GBK un UTF-8

[Kopēt saiti]
Publicēts 11.12.2022 14:01:58 | | |
Kāpēc jums ir nepieciešama kodēšana?

Mazākā atmiņas vienība datorā ir baits (baits), un rakstzīmju skaits, ko var attēlot ar baitu, ir ierobežots, 1 baits = 8 biti, baits var attēlot tikai 255 rakstzīmes, un pasaulē ir daudz valodu, ir dažādas rakstzīmes, kuras nevar attēlot ar baitu, tāpēc char attēlojuma rakstzīme Java ir atrisināt šo kodēšanas problēmu, viena rakstzīme aizņem divus baitus, tāpēc tā ir jākodē starp char un mazāko vienību baitu. Pretējais ir dekodēšana.

Faktiski kodēšana un dekodēšana ir pabeigts tulkošanas process ("tulkojums" ir viegli saprotams), un dažādas kodēšanas metodes ir vārdnīcas.

1. ASCII kods

Pilns nosaukums ir American Standard Code for Information Interchange, kas ir pasaulē visizplatītākā viena baita kodēšanas sistēma, ko galvenokārt izmanto, lai parādītu mūsdienu angļu un citas Rietumeiropas valodas.

ASCII kods ir attēlots ar 7 bitiem, kas var attēlot tikai 128 rakstzīmes, un 0 ~ 31 apzīmē vadības rakstzīmes, piemēram, enter, backspace, delete utt.; 32 ~ 126 nozīmē, ka drukātās rakstzīmes var ievadīt caur tastatūru un tās var parādīt.

Starp tiem 48 ~ 57 ir no 0 līdz 9 desmit arābu cipariem, 65 ~ 90 ir 26 lielie angļu burti, 97 ~ 122 ir 26 mazie angļu burti, un pārējie ir dažas pieturzīmes, operāciju simboli utt., Sīkākai informācijai var atsaukties uz ASCII standarta tabulu.

2 、 ISO-8859-1

Šis kodējums ir ASCII kodējuma paplašinājums, taču tas joprojām ir viena baita kodējums un kopā var attēlot tikai 256 rakstzīmes.

Tā kā ASCII var attēlot tikai 128 rakstzīmes, displeju nevar pilnībā izteiktISO-8859-1 paplašina ASCII kodējumuPapildus ASCII kodam tiek pievienoti atbilstošie Rietumeiropas valodu, grieķu, taju, arābu un ebreju teksta simboli, un tas ir atpakaļsaderīgs ar ASCII kodējumu.

3 、 GB2312

GB2312 pilns nosaukums ir "Information Technology Chinese Encoding Character Set", kas ir divu baitu kodējums ar kodējuma diapazonu no A1 līdz F7, no kura A1-A9 ir simbolu apgabals, kas satur kopā 682 simbolus; B0-F7 ir kanji apgabals, kas satur 6763 kanji.

Pilns nosaukums ir ķīniešu rakstzīmju kopa informācijas apmaiņai, ko Ķīna izlaida 1980. gadā un galvenokārt izmanto ķīniešu rakstzīmju apstrādei datorsistēmās. GB2312 galvenokārt satur 6763 ķīniešu rakstzīmes un 682 simbolus.

GB2312 aptver lielāko daļu ķīniešu rakstzīmju lietojuma, bet nevar apstrādāt īpašas retas rakstzīmes, piemēram, seno ķīniešu valodu, tāpēc vēlāk parādījās tādi kodi kā GBK un GB18030.

4、GBK

GBK pilns nosaukums ir "Ķīnas rakstzīmju iekšējā koda paplašinājuma specifikācija", kas, šķiet, paplašināja GB2312, tā kodēšanas diapazons ir 8140-FEFE (noņemiet XX7F), kopā 23940 koda biti, kas var attēlot 21003 ķīniešu rakstzīmes, un tā kodējums ir saderīgs ar GB2312

GBK, pilns Ķīnas iekšējā koda specifikācijas nosaukums, tika formulēts 1995. gadā. Tas galvenokārt paplašina GB2312 un uz tā pamata pievieno vairāk ķīniešu rakstzīmju, kas satur kopumā 21 003 ķīniešu rakstzīmes.

GBK ir atpakaļsaderīgs ar GB2312 kodējumu, kas nozīmē, ka GB2312 kodētās ķīniešu rakstzīmes var normāli dekodēt ar GBK un neparādīsies izkropļotas, bet ķīniešu rakstzīmes, kas kodētas ar GBK, ne vienmēr tiek dekodētas ar GB2312.

5、GB18030

GB18030 pilnais nosaukums ir ķīniešu rakstzīmju iekšējā koda paplašinājuma specifikācija, kas ir jaunākā iekšējā koda rakstzīmju kopa, kas izlaista 2000. gadā un ieviesta 2001. gadā, ieskaitot lielākās daļas Ķīnas etnisko minoritāšu valodas rakstzīmes, un satur vairāk nekā 70 000 ķīniešu rakstzīmju.

Tajā galvenokārt tiek izmantots viena baita, divbaitu un četru baitu rakstzīmju kodējums, un tas ir atpakaļsaderīgs ar GB2312 un GBK, lai gan mūsu valstī tas ir obligāts standarts, taču faktiskajā ražošanā to izmanto reti, un visbiežāk izmantotie ir GBK un GB2312.

6. UNIKODS

Lai viņu valoda tiktu normāli parādīta datorā, katrai valstij un reģionam ir savs kods, tāpēc neviens nezina viens otra kodu, ja ir pārāk daudz kodu, šajā laikā ISO organizācija ierosināja jaunu kodu, ko sauc par UNICODE kodēšanu, lai atbalstītu globālās kultūras, rakstzīmes un simbolus. Kad UNICODE tika formulēts, datora jauda vairs nebija problēma, tāpēc tas tika izstrādāts divu baitu labošanai, un visas rakstzīmes tika attēlotas 16 bitos, ieskaitot angļu rakstzīmes, kas iepriekš aizņēma tikai 8 bitus, tāpēc tas radītu vietas izšķērdēšanu, un UNICODE ilgu laiku netika reklamēts un piemērots.

7、UTF-16

UTF-16 parādīšanās ir ISO, lai izveidotu jaunu pārvalodu vārdnīcu, caur kuru visas pasaules valodas var tulkot viena otru, jūs varat iedomāties, cik sarežģīta un milzīga ir šī vārdnīca. UTF-16 izmanto divus baitus, lai attēlotu Unicode konvertēšanas formātu (divi baiti ir 16 biti, tāpēc UTF-16) ir fiksēta garuma attēlošanas metode, tas ir, jebkuru rakstzīmi var attēlot divos baitos. Tas padara ļoti ērtu rakstzīmju attēlošanu. Tomēr ir arī trūkums, tas ir, lielu daļu rakstzīmju var attēlot vienā baitā, bet UTF-16 izmanto divus baitus, kas ir krātuves vietas izšķiešana. Tātad ir vēl viens kodēšanas veids, kas ir UTF-8.

UTF-16 ir īpaša UNICODE ieviešana, 16 ir 16 biti, UTF-16 ir izcelsme, kas nosaka, kā UNICODE rakstzīmes tiek glabātas datorā, UTF-16 izmanto arī divus baitus, lai attēlotu jebkuru rakstzīmi, kas padara operācijas virkni ļoti efektīvu, kas ir arī svarīgs iemesls, kāpēc java izmanto UTF-16 kā formātu rakstzīmju glabāšanai atmiņā.

UTF-16 ir piemērots lietošanai starp disku un atmiņu, un rakstzīmju un baitu konvertēšana viena no otras būs vienkāršāka un efektīvāka, taču tā nav piemērota tīkla pārraidei, kas var sabojāt baitu plūsmu.

8、UTF-8

UTF-8 izmanto mainīga garuma tehnoloģiju, kur katram kodēšanas reģionam ir atšķirīgs koda garums, un dažāda veida rakstzīmes var sastāvēt no 1-6 baitiem.

UTF-8 kodēšanas noteikumi ir šādi:

1) Ja tas ir 1 baits un augstākais bits ir 0, tas nozīmē, ka tā ir 1 ASCII rakstzīme. Var redzēt, ka visi ASCII kodējumi jau ir UTF-8

2) Ja tas ir 1 baits, sākot ar 11, secīgo 1 skaits nozīmē šīs rakstzīmes baitu skaitu, piemēram: 110xxxxx nozīmē, ka tas ir divbaitu UTF-8 rakstzīmes pirmais baits

3) Ja tas ir 1 baits, sākot ar 10, tas nozīmē, ka tas nav pirmais baits, jums jāgaida, lai iegūtu pašreizējās rakstzīmes pirmo baitu.

Lai gan UTF-16 ir ļoti efektīvs, tas ir arī lielākais UNICODE trūkums, lai visām viena baita rakstzīmēm būtu jāveido divi baiti, un atmiņas vieta ir dubultota, kas acīmredzami patērē resursus un neatbilst pašreizējai situācijai straujā interneta attīstībā. Tātad ar UTF-8 tā ir mainīga garuma rakstzīmju kodēšanas ieviešana UNICODE, kas var izmantot 1 ~ 6 fiksēta garuma baitus, lai kodētu UNICODE rakstzīmes.

UTF-8 izmanto viena baita krātuvi ASCII rakstzīmēm, un, ja viena rakstzīme ir bojāta, tas neietekmēs nākamās rakstzīmes, tāpēc UTF-8 ir ideāli piemērots tradicionālajiem tīmeklī un ir viens no mūsdienās visplašāk izmantotajiem kodējumiem.

Ja vēlaties attēlot ķīniešu valodu, UTF-8 kodēšanas efektivitāte ir lielāka par GBK un mazāka par UTF-16, tāpēc tā ir arī ideālākā kodēšanas metode, izņemot GBK.




Iepriekšējo:Pārmērīga atmiņas buff/kešatmiņas izmantošana operētājsistēmā Linux
Nākamo:Līdzekļu failu "project.assets.json" nevar atrast. Palaist NuGet pakotnes atjaunošanu...
Publicēts 30.12.2022 14:43:17 |
Sapratu, ar utf-8
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com