Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 4124|Svar: 1

Skillnad mellan ASCII-kod, ISO8859-1, Unicode, GBK och UTF-8

[Kopiera länk]
Publicerad på 2022-12-11 14:01:58 | | |
Varför behöver du kodning?

Den minsta lagringsenheten i datorn är byte (byte), och antalet tecken som kan representeras av en byte är begränsat, 1 byte=8 bit, en byte kan bara representera högst 255 tecken, och det finns många språk i världen, det finns olika tecken som inte kan representeras av en byte, så char-representationen i Java är för att lösa detta kodningsproblem, ett char upptar två byte, så det måste kodas mellan char och den minsta enhetsbytet. Det motsatta är avkodning.

Faktum är att kodning och avkodning är den färdiga översättningsprocessen ("översättning" är lätt att förstå), och olika kodningsmetoder är ordböcker.

1. ASCII-kod

Det fullständiga namnet är American Standard Code for Information Interchange, som är världens vanligaste enkelbyteskodningssystem, främst för att visa modern engelska och andra västeuropeiska språk.

ASCII-kod representeras av 7 bitar, som endast kan representera 128 tecken, och 0~31 representerar kontrolltecken som enter, backspace, delete, etc.; 32~126 betyder att de utskrivna tecknen kan matas in via tangentbordet och kan visas.

Bland dessa är 48~57 0 till 9 tio arabiska siffror, 65~90 är 26 versaler på engelska, 97~122 är 26 gemener engelska bokstäver, och resten är några skiljetecken, operationssymboler etc., vilka kan hänvisa till ASCII:s standardtabell för detaljer.

2、ISO-8859-1

Denna kodning är en utvidgning av ASCII-kodningen, men är fortfarande en enbyteskodning och kan endast representera totalt 256 tecken.

Eftersom ASCII bara kan representera 128 tecken kan displayen inte uttryckas fullt utISO-8859-1 utökar ASCII-kodningenOvanpå ASCII-koden läggs motsvarande textsymboler från västeuropeiska språk, grekiska, thailändska, arabiska och hebreiska, och den är bakåtkompatibel med ASCII-kodning.

3、GB2312

Det fullständiga namnet på GB2312 är "Information Technology Chinese Encoding Character Set", vilket är en tvåbyteskodning med kodningsintervallet A1-F7, där A1-A9 är symbolområdet och innehåller totalt 682 symboler; B0-F7 är kanjiområdet och innehåller 6763 kanji.

Det fullständiga namnet är en kinesisk teckenuppsättning för informationsutbyte, som släpptes av Kina 1980 och främst används för kinesisk teckenbehandling i datorsystem. GB2312 innehåller huvudsakligen 6763 kinesiska tecken och 682 symboler.

GB2312 täcker det mesta av användningen av kinesiska tecken, men kan inte hantera speciella sällsynta tecken som forntida kinesiska, så koder som GBK och GB18030 dök upp senare.

4、GBK

Det fullständiga namnet på GBK är "Chinese Character Internal Code Extension Specification", som verkar ha utökat GB2312, dess kodningsområde är 8140-FEFE (ta bort XX7F), med totalt 23940 kodbitar, vilket kan representera 21003 kinesiska tecken, och dess kodning är kompatibel med GB2312

GBK, det fullständiga namnet på Chinese Internal Code Specification, formulerades 1995. Den expanderar främst GB2312 och lägger till fler kinesiska tecken på sin grund, som innehåller totalt 21 003 kinesiska tecken.

GBK är bakåtkompatibel med GB2312-kodning, vilket innebär att de kinesiska tecknen som kodas i GB2312 kan avkodas normalt med GBK och inte kommer att se oförvrängda ut, men de kinesiska tecknen som kodas med GBK är inte nödvändigtvis avkodade med GB2312.

5、GB18030

GB18030 fullständiga namn är Chinese Character Internal Code Extension Specification, som är den senaste interna koduppsättningen som släpptes 2000 och infördes 2001, inklusive språktecken för de flesta etniska minoriteter i Kina, och innehåller mer än 70 000 kinesiska tecken.

Den använder främst enkelbytes-, dubbelbyte- och fyrbytes teckenkodning, och är bakåtkompatibel med GB2312 och GBK, även om det är en obligatorisk standard i vårt land, men den används sällan i faktisk produktion, och de mest använda är GBK och GB2312.

6.UNICODE

För att deras språk ska visas normalt i datorn har varje land och region sin egen kod, så att ingen känner till varandras kod om det finns för många koder, föreslog ISO-organisationen vid denna tid en ny kod kallad UNICODE-kodning för att stödja globala kulturer, tecken och symboler. När UNICODE formulerades var datorkapaciteten inte längre ett problem, så det designades för att vara fast två byte, och alla tecken representerades i 16 bitar, inklusive engelska tecken som tidigare bara upptog 8 bitar, vilket skulle leda till slöseri med utrymme, och UNICODE marknadsfördes inte och tillämpades inte på länge.

7、UTF-16

Framväxten av UTF-16 är ISO för att skapa en ny supralingulär ordbok, genom vilken alla språk i världen kan översätta varandra, du kan föreställa dig hur komplex och enorm denna ordbok är. UTF-16 använder två byte för att representera Unicode-konverteringsformatet (två byte är 16 bitar, så UTF-16) är en representationsmetod med fast längd, det vill säga att vilket tecken som helst kan representeras i två byte. Detta gör det mycket bekvämt att representera karaktärer. Det finns dock också en brist, det vill säga att en stor del av tecknen kan representeras i en byte, men UTF-16 använder två byte, vilket är slöseri med lagringsutrymme. Så det finns ett annat sätt att koda, nämligen UTF-8.

UTF-16 är den specifika implementationen av UNICODE, 16 är 16 bitar, UTF-16 är ursprunget och definierar hur UNICODE-tecken lagras i datorn, UTF-16 använder också två byte för att representera vilket tecken som helst, vilket gör operationssträngen mycket effektiv, vilket också är en viktig anledning till att Java använder UTF-16 som format för tecken att lagra i minnet.

UTF-16 är lämplig för användning mellan disk och minne, och konverteringen av tecken och byte till och från varandra kommer att vara enklare och mer effektiv, men den är inte lämplig för nätverksöverföring, vilket kan skada byteströmmen.

8、UTF-8

UTF-8 använder en variabel längdsteknologi där varje kodregion har olika kodlängder, och olika typer av tecken kan bestå av 1–6 byte.

Kodningsreglerna för UTF-8 är följande:

1) Om det är 1 byte och den högsta biten är 0, betyder det att detta är 1 ASCII-tecken. Det kan ses att alla ASCII-kodningar redan är UTF-8

2) Om det är 1 byte, med start på 11, innebär antalet på varandra följande 1:or antalet byte av detta tecken, till exempel: 110xxxxx betyder att det är den första byten av ett dubbelbyte UTF-8-tecken

3) Om det är 1 byte, med start på 10, betyder det att det inte är första byte, du måste titta framåt för att få första byten av det aktuella tecknet.

Även om UTF-16 är mycket effektivt, är det också den största nackdelen med UNICODE, eftersom alla enkelbytestecken måste ta hänsyn till två byte, och lagringsutrymmet fördubblas, vilket uppenbarligen förbrukar resurser och inte följer den nuvarande situationen med snabb internetutveckling. Så med UTF-8 är det en implementation av variabellängds teckenkodning av UNICODE, som kan använda 1~6 byte med fast längd för att koda UNICODE-tecken.

UTF-8 använder enkelbyteslagring för ASCII-tecken, och om ett enda tecken är korrupt påverkar det inte efterföljande tecken, så UTF-8 är idealiskt för traditionell webbkodning och är en av de mest använda kodningarna idag.

Om du vill representera kinesiska är UTF-8:s kodningseffektivitet större än GBK och mindre än UTF-16, så det är också den mest idealiska kodningsmetoden utöver GBK.




Föregående:Överdriven minnesbuff/cacheanvändning under Linux
Nästa:Tillgångsfilen "project.assets.json" kan inte hittas. Kör NuGet-paketåterställning...
Publicerad på 2022-12-30 14:43:17 |
Förstått, med utf-8
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com