Kodėl jums reikia kodavimo?
Mažiausias atminties vienetas kompiuteryje yra baitas (baitas), o simbolių, kuriuos galima pavaizduoti baitu, skaičius yra ribotas, 1 baitas = 8 bitai, baitas gali reikšti tik 255 simbolius, o pasaulyje yra daug kalbų, yra įvairių simbolių, kurių negalima pavaizduoti baitu, todėl char reprezentacijos simbolis Java yra išspręsti šią kodavimo problemą, vienas simbolis užima du baitus, todėl jis turi būti užkoduotas tarp char ir mažiausio vieneto baito. Priešingai yra dekodavimas.
Tiesą sakant, kodavimas ir dekodavimas yra baigtas vertimo procesas ("vertimas" yra lengvai suprantamas), o įvairūs kodavimo metodai yra žodynai.
1. ASCII kodas
Visas pavadinimas yra Amerikos standartinis informacijos mainų kodas, kuris yra labiausiai paplitusi pasaulyje vieno baito kodavimo sistema, daugiausia naudojama šiuolaikinėms anglų ir kitoms Vakarų Europos kalboms rodyti.
ASCII kodas vaizduojamas 7 bitais, kurie gali reikšti tik 128 simbolius, o 0~31 reiškia kontrolinius simbolius, tokius kaip enter, backspace, delete ir kt.; 32 ~ 126 reiškia, kad spausdintus simbolius galima įvesti per klaviatūrą ir juos galima rodyti.
Tarp jų 48 ~ 57 yra nuo 0 iki 9 dešimt arabiškų skaitmenų, 65 ~ 90 yra 26 didžiosios angliškos raidės, 97 ~ 122 yra 26 mažosios angliškos raidės, o likusi dalis yra skyrybos ženklai, operacijų simboliai ir kt., kurie gali būti susiję su ASCII standartine lentele.
2 、 ISO-8859-1
Šis kodavimas yra ASCII kodavimo plėtinys, tačiau jis vis tiek yra vieno baito kodavimas ir iš viso gali reikšti tik 256 simbolius.
Kadangi ASCII gali reikšti tik 128 simbolius, ekranas negali būti visiškai išreikštasISO-8859-1 išplečia ASCII kodavimąAnt ASCII kodo pridedami atitinkami Vakarų Europos kalbų, graikų, tajų, arabų ir hebrajų tekstiniai simboliai, ir jis yra suderinamas su ASCII kodavimu.
3 、 GB2312
Visas GB2312 pavadinimas yra "Informacinių technologijų kinų kodavimo simbolių rinkinys", kuris yra dviejų baitų kodavimas, kurio kodavimo diapazonas yra A1–F7, iš kurių A1–A9 yra simbolių sritis, kurioje iš viso yra 682 simboliai; B0-F7 yra kandži sritis, kurioje yra 6763 kanji.
Visas pavadinimas yra kinų simbolių rinkinys, skirtas keistis informacija, kurį Kinija išleido 1980 m. ir daugiausia naudojamas kinų simbolių apdorojimui kompiuterinėse sistemose. GB2312 daugiausia yra 6763 kinų simboliai ir 682 simboliai.
GB2312 apima didžiąją dalį kinų rašmenų naudojimo, tačiau negali apdoroti specialių retų simbolių, tokių kaip senovės kinų, todėl tokie kodai kaip GBK ir GB18030 atsirado vėliau.
4、GBK
Visas GBK pavadinimas yra "Chinese Character Internal Code Extension Specification", kuris, atrodo, išplėtė GB2312, jo kodavimo diapazonas yra 8140-FEFE (pašalinkite XX7F), iš viso 23940 kodo bitų, kurie gali reikšti 21003 kinų simbolius, o jo kodavimas suderinamas su GB2312
GBK, visas Kinijos vidaus kodekso specifikacijos pavadinimas, buvo suformuluotas 1995 m. Jis daugiausia išplečia GB2312 ir prideda daugiau kinų rašmenų, kurių pagrindu iš viso yra 21 003 kinų simboliai.
GBK yra suderinamas su GB2312 kodavimu, o tai reiškia, kad GB2312 užkoduotus kinų simbolius galima normaliai iššifruoti naudojant GBK ir jie nebus iškraipyti, tačiau kinų simboliai, užkoduoti GBK, nebūtinai dekoduojami GB2312.
5、GB18030
GB18030 pilnas pavadinimas yra kinų simbolių vidinio kodo plėtinio specifikacija, kuri yra naujausias vidinio kodo simbolių rinkinys, išleistas 2000 m. ir įsigaliojęs 2001 m., įskaitant daugumos Kinijos etninių mažumų kalbos simbolius, ir jame yra daugiau nei 70 000 kinų simbolių.
Jame daugiausia naudojamas vieno baito, dviejų baitų ir keturių baitų simbolių kodavimas ir jis yra suderinamas su GB2312 ir GBK, nors mūsų šalyje tai yra privalomas standartas, tačiau faktinėje gamyboje jis naudojamas retai, o dažniausiai naudojami GBK ir GB2312.
6. UNIKODAS
Kad jų kalba būtų normaliai rodoma kompiuteryje, kiekviena šalis ir regionas turi savo kodą, todėl niekas nežino vienas kito kodo, jei kodų yra per daug, šiuo metu ISO organizacija pasiūlė naują kodą, vadinamą UNICODE kodavimu, kad palaikytų pasaulines kultūras, simbolius ir simbolius. Kai buvo suformuluotas UNICODE, kompiuterio talpa nebebuvo problema, todėl jis buvo sukurtas taip, kad būtų fiksuotas dviem baitais, o visi simboliai buvo pavaizduoti 16 bitų, įskaitant angliškus simbolius, kurie anksčiau užimdavo tik 8 bitus, todėl tai sukėlė vietos švaistymą, o UNICODE ilgą laiką nebuvo reklamuojamas ir taikomas.
7 、 UTF-16
UTF-16 atsiradimas yra ISO sukurti naują virškalbinį žodyną, per kurį visos pasaulio kalbos gali versti viena kitą, galite įsivaizduoti, koks sudėtingas ir didžiulis yra šis žodynas. UTF-16 naudoja du baitus Unicode konvertavimo formatui pavaizduoti (du baitai yra 16 bitų, taigi UTF-16) yra fiksuoto ilgio vaizdavimo metodas, tai yra, bet koks simbolis gali būti pavaizduotas dviem baitais. Dėl to labai patogu vaizduoti personažus. Tačiau yra ir trūkumas, tai yra, didelę dalį simbolių galima pavaizduoti vienu baitu, tačiau UTF-16 naudoja du baitus, o tai yra saugyklos vietos švaistymas. Taigi yra dar vienas kodavimo būdas, kuris yra UTF-8.
UTF-16 yra specifinis UNICODE įgyvendinimas, 16 yra 16 bitų, UTF-16 yra kilmė, apibrėžianti, kaip UNICODE simboliai saugomi kompiuteryje, UTF-16 taip pat naudoja du baitus bet kuriam simboliui pavaizduoti, todėl operacijos eilutė yra labai efektyvi, o tai taip pat yra svarbi priežastis, kodėl java naudoja UTF-16 kaip simbolių saugojimo atmintyje formatą.
UTF-16 tinka naudoti tarp disko ir atminties, o simbolių ir baitų konvertavimas vienas į kitą ir iš kito bus paprastesnis ir efektyvesnis, tačiau jis netinka tinklo perdavimui, o tai gali sugadinti baitų srautą.
8 、 UTF-8
UTF-8 naudoja kintamo ilgio technologiją, kai kiekviena kodavimo sritis turi skirtingą kodo ilgį, o skirtingų tipų simboliai gali būti sudaryti iš 1–6 baitų.
UTF-8 kodavimo taisyklės yra šios:
1) Jei jis yra 1 baitas, o didžiausias bitas yra 0, tai reiškia, kad tai yra 1 ASCII simbolis. Galima pastebėti, kad visi ASCII kodavimai jau yra UTF-8
2) Jei tai yra 1 baitas, pradedant nuo 11, iš eilės einančių 1 skaičius reiškia šio simbolio baitų skaičių, pavyzdžiui: 110xxxxx reiškia, kad tai yra pirmasis dviejų baitų UTF-8 simbolio baitas
3) Jei tai yra 1 baitas, pradedant nuo 10, tai reiškia, kad tai nėra pirmasis baitas, reikia laukti, kol gausite pirmąjį dabartinio simbolio baitą.
Nors UTF-16 yra labai efektyvus, tai taip pat yra didžiausias UNICODE trūkumas, todėl visi vieno baito simboliai turi sudaryti du baitus, o saugyklos vieta padvigubėja, o tai akivaizdžiai sunaudoja išteklius ir neatitinka dabartinės sparčios interneto plėtros situacijos. Taigi su UTF-8 tai yra kintamo ilgio simbolių kodavimo UNICODE įgyvendinimas, kuris gali naudoti 1~6 fiksuoto ilgio baitus UNICODE simboliams koduoti.
UTF-8 naudoja vieno baito saugyklą ASCII simboliams, o jei vienas simbolis yra sugadintas, tai neturės įtakos vėlesniems simboliams, todėl UTF-8 idealiai tinka tradiciniams žiniatinklyje ir yra vienas iš plačiausiai naudojamų kodavimų šiandien.
Jei norite pavaizduoti kinų kalbą, UTF-8 kodavimo efektyvumas yra didesnis nei GBK ir mažesnis nei UTF-16, todėl tai taip pat yra idealiausias kodavimo metodas, išskyrus GBK. |