Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 4124|Odpověď: 1

Rozdíl mezi ASCII kódem, ISO8859-1, Unicode, GBK a UTF-8

[Kopírovat odkaz]
Zveřejněno 11.12.2022 14:01:58 | | |
Proč potřebujete programování?

Nejmenší úložiště v počítači je bajt (bajt) a počet znaků, které lze reprezentovat jedním bajtem, je omezený, 1 bajt = 8 bitů, bajt může reprezentovat maximálně 255 znaků, a na světě existuje mnoho jazyků, které nelze reprezentovat bajtem, takže znak char v Javě slouží k řešení tohoto kódovacího problému, jeden char zabírá dva bajty, takže musí být kódován mezi char a nejmenším jednotkovým bajtem. Opakem je dekódování.

Ve skutečnosti je kódování a dekódování dokončeným překladovým procesem ("překlad" je snadno pochopitelný) a různé metody kódování jsou slovníky.

1. ASCII kód

Celý název je American Standard Code for Information Interchange, což je nejběžnější jednobajtový kódovací systém na světě, používaný především k zobrazení moderní angličtiny a dalších západoevropských jazyků.

ASCII kód je reprezentován 7 bity, které mohou reprezentovat pouze 128 znaků, a 0~31 představuje řídicí znaky jako enter, backspace, delete atd.; 32~126 znamená, že tištěné znaky lze zadat přes klávesnici a zobrazit je.

Mezi nimi je 48~57 deset arabských číslic od 0 do 9, 65~90 je 26 velkých anglických písmen, 97~122 je 26 malých anglických písmen a zbytek jsou interpunkce, operační symboly atd., které mohou odkazovat na ASCII standardní tabulku pro podrobnosti.

2、ISO-8859-1

Toto kódování je rozšířením ASCII kódování, ale stále jde o jednobajtové kódování a může reprezentovat celkem pouze 256 znaků.

Protože ASCII dokáže reprezentovat pouze 128 znaků, displej nelze plně vyjádřitISO-8859-1 rozšiřuje ASCII kódováníNad ASCII kódem jsou přidány odpovídající textové symboly západoevropských jazyků, řečtiny, thajštiny, arabštiny a hebrejštiny, a je zpětně kompatibilní s ASCII kódováním.

3、GB2312

Plný název GB2312 je "Information Technology Chinese Encoding Character Set", což je dvoubajtové kódování s rozsahem kódování A1-F7, přičemž A1-A9 je symbolová oblast, obsahující celkem 682 symbolů; B0-F7 je oblast kanji, obsahující 6763 kanji.

Plný název je čínská znaková sada pro výměnu informací, kterou Čína vydala v roce 1980 a používá se především pro zpracování čínských znaků v počítačových systémech. GB2312 obsahuje převážně 6763 čínských znaků a 682 symbolů.

GB2312 pokrývá většinu použití čínských znaků, ale nedokáže zpracovat speciální vzácné znaky, jako je staročínština, takže kódy jako GBK a GB18030 se objevily později.

4、GBK

Plný název GBK je "Chinese Character Internal Code Extension Specification", která se zdála rozšiřovat GB2312, její rozsah kódování je 8140-FEFE (odstraňte XX7F), s celkovým počtem 23940 bitů kódu, což může reprezentovat 21003 čínských znaků, a jeho kódování je kompatibilní s GB2312

GBK, plný název čínské interní kódové specifikace, byl formulován v roce 1995. Hlavně rozšiřuje GB2312 a přidává více čínských znaků na svém základu, který obsahuje celkem 21 003 čínských znaků.

GBK je zpětně kompatibilní s kódováním GB2312, což znamená, že čínské znaky kódované v GB2312 lze normálně dekódovat pomocí GBK a nebudou se jevit zkresleně, ale čínské znaky kódované v GBK nemusí být nutně dekódovány pomocí GB2312.

5、GB18030

GB18030 plný název je Chinese Character Internal Code Extension Specification, což je nejnovější interní znaková sada vydaná v roce 2000 a vynucovaná v roce 2001, včetně jazykových znaků většiny etnických menšin v Číně a obsahuje více než 70 000 čínských znaků.

Používá převážně jednobajtové, dvoubajtové a čtyřbajtové kódování znaků a je zpětně kompatibilní s GB2312 a GBK, i když je to v naší zemi povinný standard, ale ve skutečné produkci se používá jen zřídka, nejčastěji jsou to GBK a GB2312.

6. UNICODE

Aby se jejich jazyk mohl normálně zobrazovat v počítači, má každá země a region svůj vlastní kód, takže nikdo nezná kód druhého, pokud je kódů příliš mnoho, v té době organizace ISO navrhla nový kód nazvaný UNICODE kódování, který podporuje globální kultury, znaky a symboly. Když byl UNICODE formulován, kapacita počítače již nebyla problémem, a proto byl navržen tak, aby byl pevně zadaný dvěma bajty a všechny znaky byly reprezentovány v 16 bitech, včetně anglických znaků, které dříve zabíraly pouze 8 bitů, což by znamenalo ztrátu místa, a UNICODE nebyl dlouho propagován a používán.

7. UTF-16

Vznik UTF-16 je cílem vytvořit nový nadjazyčný slovník, přes který se mohou všechny jazyky světa navzájem překládat, můžete si představit, jak složitý a obrovský tento slovník je. UTF-16 používá dva bajty k reprezentaci formátu konverze Unicode (dva bajty mají 16 bitů, tedy UTF-16) což je metoda reprezentace s pevnou délkou, tedy jakýkoli znak může být reprezentován ve dvou bajtech. To velmi usnadňuje reprezentaci postav. Existuje však také chyba, totiž že velkou část znaků lze reprezentovat v jednom bajtu, ale UTF-16 využívá dva bajty, což je plýtvání úložným prostorem. Existuje tedy i jiný způsob kódování, kterým je UTF-8.

UTF-16 je specifickou implementací UNICODE, 16 je 16 bitů, UTF-16 je původ, který definuje, jak jsou UNICODE znaky uloženy v počítači, UTF-16 také používá dva bajty k reprezentaci libovolného znaku, což činí operační řetězec velmi efektivním, což je také důležitý důvod, proč Java používá UTF-16 jako formát pro ukládání znaků do paměti.

UTF-16 je vhodný pro použití mezi diskem a pamětí a převod znaků a bajtů mezi sebou bude jednodušší a efektivnější, ale není vhodný pro síťový přenos, což může poškodit tok bajtů.

8、UTF-8

UTF-8 používá technologii proměnné délky, kdy každá oblast kódování má jinou délku kódu a různé typy znaků mohou mít rozsah 1–6 bajtů.

Pravidla kódování pro UTF-8 jsou následující:

1) Pokud je to 1 bajt a nejvyšší bit je 0, znamená to, že jde o 1 ASCII znak. Je vidět, že všechna ASCII kódování jsou již UTF-8

2) Pokud je to 1 bajt, začínající na 11, počet po sobě jdoucích jedniček znamená počet bajtů tohoto znaku, například: 110xxxxx znamená, že je to první bajt dvoubajtového znaku UTF-8

3) Pokud je to 1 bajt, začínající na 10, znamená to, že to není první bajt, musíte se dopředu zaměřit na první bajt aktuálního znaku.

Ačkoliv je UTF-16 velmi efektivní, je to také největší nevýhoda UNICODE, protože všechny jednobajtové znaky musí zabírat dva bajty a úložný prostor je zdvojnásoben, což samozřejmě spotřebovává zdroje a neodpovídá současné situaci rychlého rozvoje internetu. Takže s UTF-8 jde o implementaci kódování znaků s proměnnou délkou UNICODE, které může použít 1~6 bajtů pevné délky k kódování znaků UNICODE.

UTF-8 používá jednobajtové úložiště pro ASCII znaky a pokud je jeden znak poškozen, neovlivní to další znaky, takže UTF-8 je ideální pro tradiční web a patří mezi nejrozšířenější kódování dnes.

Pokud chcete reprezentovat čínštinu, efektivita kódování UTF-8 je větší než u GBK a menší než u UTF-16, takže je to také nejideálnější metoda kódování kromě GBK.




Předchozí:Nadměrné využití buffů/cache v Linuxu
Další:Soubor aktiv "project.assets.json" nelze najít. Spustit NuGet balíček obnovit...
Zveřejněno 30.12.2022 14:43:17 |
Rozumím, s utf-8
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com