SITE SØK

utf-8 - tegnkoding

Unicode støtter nesten alle eksisterendetegnsett. Den beste form for Unicode tegnsettkoding er utf-8-koding. Det gir kompatibilitet med ASCII, motstand mot data korrupsjon, effektivitet og enkel behandling. Men om alt i orden.

Skjema for koding

Datamaskiner opererer med tall ikke bare somabstrakte matematiske objekter, men som kombinasjoner av lagrings- og behandlingsenheter av fast størrelse-byte og 32-biters ord. Kodingsstandarden må ta hensyn til dette når du bestemmer måten tegnene er representert på tall.

I datasystemer lagres heltall iminnesceller i størrelsen 8 bits (1 byte), 16 eller 32 bits. Hver Unicode-kodingsform bestemmer hvilken sekvens av minneceller representerer et heltall som tilsvarer et bestemt tegn. Standarden gir tre forskjellige former for koding av Unicode-tegn: 8, 16 og 32-biters blokker. Følgelig kalles de utf-8, UTF-16 og UTF-32. Navnet UTF står for Unicode-konverteringsformat. Hver av de tre kodene er et like middel for å representere Unicode-tegn, har fordeler i forskjellige applikasjoner.

Disse kodene kan brukes tilrepresentasjon av alle Unicode-tegn. Dermed er de fullt kompatible for løsninger av forskjellige grunner ved hjelp av forskjellige former for koding. Hver koding kan unikt konverteres til noen av de andre to uten tap av data.

utf 8 koding

Prinsippet om ikke-pålegg

Hver av Unicode-kodingsformene er designet medtar hensyn til avvisning av delvis overlapping. For eksempel genererer Windows-932 tegn fra en eller to byte kode. Lengden på sekvensen avhenger av den første byten, slik at de ledende byteverdiene i sekvensen av to byte og en enkelt byte ikke krysser. Imidlertid kan verdiene for den enkle byte og den lukkende byte av sekvensen være de samme. Dette betyr for eksempel at når du søker etter tegnet D (kode 44), kan du feilaktig finne den inn i den andre delen av sekvensen av to byte av tegnet "D" (kode 84 44). For å bestemme hvilken rekkefølge som er riktig, må programmet ta hensyn til tidligere byte.

Situasjonen blir mer komplisert hvis den ledende og etterfølgendebytes vil matche. Dette betyr at for å reversere tvetydigheten, vil et omvendt søk utføres til begynnelsen av teksten eller en entydig sekvens av kode. Dette er ikke bare ineffektivt, men ikke beskyttet mot mulige feil, fordi en dårlig byte er nok til å gjøre hele teksten ulæselig.

Unicode konverteringsformat unngårav dette problemet, fordi verdiene til ledende, lukkende og enkelt informasjon lagringsenhet ikke samsvarer. Dette sikrer at alle Unicode for søk og sammenligning, aldri gi feilaktige resultater på grunn av sammentreff av ulike deler av tegnkoden. Det faktum at disse kodingsformene overholder prinsippet om ikke-tildeling, skiller dem fra andre multibyte-østasiatiske kodinger.

Et annet aspekt ved ikke-kryss av Unicode-kodingerer at hver karakter har klart definerte grenser. Dette eliminerer behovet for å skanne et ubestemt antall tidligere tegn. Denne funksjonen av kodinger kalles noen ganger selvsynkronisering. Forvrengning av en enhet av kode vil føre til forvrengning av bare ett tegn, og de omkringliggende tegnene forblir intakte. I 8-biters konverteringsformat, hvis pekeren refererer til en byte som begynner med 10xxxxxx (i binær koding), behøves en til tre reversoverganger for å finne begynnelsen på tegnet.

kodende utf 8

konsistens

Unicode Consortium støtter alle3 former for kodinger. Det er viktig ikke å motsette seg UTF-8 og Unicode, som alle konverterings formater - likeverdige utførelsesformer av den Unicode-kodingsstandarden.

Byte-orientering

For å representere UTF-32-symbolet, trenger du en 32-biters enhetskode som samsvarer med Unicode-koden. UTF-16 - fra en til to 16-bits enheter. Og utf-8 bruker opptil 4 byte.

Kodingen utf-8 ble opprettet for kompatibilitet medbyte-orienterte systemer basert på ASCII. De fleste av eksisterende programvare- og informasjonsteknologipraksis har lenge vært avhengig av representasjon av symboler i form av en sekvens av byte. Mange protokoller er avhengig av uendret ASCII-koding og bruker eller unngår spesielle kontrolltegn. En enkel måte å tilpasse Unicode til slike situasjoner er ved å bruke 8-biters koding for å representere Unicode-tegn som tilsvarer et hvilket som helst ASCII-tegn eller kontrolltegn. For dette er utf-8-koding ment.

Variabel lengde

utf-8 er en kodelengde med variabel lengde bestående av8-bits informasjonslagringsenheter der høyordensbiter angir hvilken del av sekvensen hver enkelt byte tilhører. En rekke verdier er allokert for det første elementet i kodesekvensen, det andre for de etterfølgende elementene. Dette sikrer ujevn koding.

tegnkodning utf 8

ASCII

utf-8-koding støtter fullt ASCII-koder(0x00-0x7F). Dette betyr at Unicode-tegn U + 0000-U + 007F konverteres til en enkelt byte 0x00-0x7F utf-8 og blir dermed ikke skilt fra ASCII. Dessuten, for å unngå tvetydighet, blir verdiene 0x00-0x7F ikke lenger brukt i noen byte av Unicode tegnrepresentasjonen. For å kode for ikke-ideografiske symboler annet enn ASCII, brukes en sekvens av to byte. Symbolene i området U + 0800-U + FFFF er representert av tre byte, og flere med koder som er større enn U + FFFF krever fire byte.

Anvendelsesområde

Kodingen utf-8 er vanligvis foretrukket i HTML-protokollen og ligner den.

XML ble den første standarden med full støttekodinger utf-8. Organisasjoner som er involvert i standardisering, også, anbefaler det. Problemet med støtte i andre nettadresser enn ASCII-tegn ble løst da W3C-konsortiet og IETF-engineering gruppen ble enige om å kode alle nettadresser utelukkende i utf-8.

Kompatibilitet med ASCII muliggjør overgangen til en nyprogramvare. Med utf-8 jobber de fleste av tekstredigererne, inkludert JEdit, Emacs, BBEdit, Eclipse og Notisblokk av Windows-operativsystemet. Ingen annen form for Unicode-koding kan skryte av slik støtte fra verktøyene.

Fordelen med kodingen er at denbestår av en sekvens av byte. Med utf-8 strenger er det enkelt å jobbe i C og andre programmeringsspråk. Dette er den eneste form for koding som ikke krever merking av rekkefølgen til BOM-bytes eller kodningsdeklarasjonen i XML.

html-koding utf 8

selvsynkronisering

I et miljø som bruker 8-bit tegnbehandling, sammenlignet med andre multi-byte kodinger, har utf-8 følgende fordeler:

  • Den første byte av kodesekvensen inneholder informasjon om dens lengde. Dette øker effektiviteten av direkte søk.
  • Det er lettere å finne begynnelsen på tegnet, siden den første byten er begrenset til et fast verdiområde.
  • Det er ingen kryss av byteverdier.

Sammenligning av fordeler

utf-8-koding er kompakt. Men når du søker om koding av østasiatiske tegn (kinesisk, japansk, koreansk, bruker kinesiske tegn) brukes 3-byte-sekvenser. Også utf-8-koding er dårligere enn andre former for koding ved prosesshastighet. En binær strengsortering gir det samme resultatet som en Unicode-binær sortering.

Tegnkodingskjema

Tegnkodingsordningen består av en skjemategnkoding, og en metode for byte-for-pixel-arrangement av kodeenheter. For å bestemme kodeskjema Unicode standard tilveiebringer anvendelse av en første byte rekkefølge (BOM, Byte rekkefølge).

Når BOM er aktivert i utf-8, er etikettfunksjonener bare begrenset av indikasjonen på bruken av kodingsformen. Det er ingen problemer med å bestemme rekkefølgen på bytes i utf-8, siden størrelsen på kodingsenheten er en byte. Bruken av BOM for denne kodingsformen er verken obligatorisk eller anbefalt. BOM kan forekomme i tekster konvertert fra andre kodinger som bruker byteordremerket, eller for utf-8-kodings signaturen. Det er en sekvens av 3 bytes av EF16 BB16 BF16.

fil i utf 8 koding

Hvordan sette utf-8-koding

I HTML er utf-8-koding satt ved hjelp av følgende kode:

hEAD

˂meta http-equiv = "Content-Type" content = "tekst / html; charset = utf-8" ˂

I PHP er utf-8-koding spesifisert ved å bruke header () -funksjonen helt i begynnelsen av filen etter å ha satt verdien av feilutgangsnivået:

˂? Php

error_reporting (-1);

header ("Content-Type: text / html; charset = utf-8");

For å koble til MySQL-databaser, er utf-8-kodingen satt som følger:

˂? Php

mysql_set_charset ("utf8");

I CSS-filer er tegnsammenkallingen utf-8 spesifisert som følger:

@charset "utf-8";

lagre som utf 8

Når du lagrer filer av alle typer, velger dukoding utf-8 uten BOM, ellers vil nettstedet ikke fungere. For å gjøre dette, i programmet DreamWeave, må du velge menypunktet "Modifikasjoner - Sideegenskaper - Tittel / Koding", endre kodingen til utf-8. Deretter bør du laste inn siden, fjerne merket i boksen "Koble Unicode Signatures (BOM)" og bruk endringene. Hvis noen tekst på siden eller i databasen er skrevet inn av et annet kodingsskjema, må det skrives inn eller omkodes. Når du arbeider med vanlige uttrykk, er det obligatorisk å bruke modifikatoren.

Du kan også lagre filen i utf-8-koding i Windows Notisblokk. Når du har valgt menyelementet "Fil - Lagre som ...", angi nødvendig kodingsform og lagre filen i utf-8-kodingen.

I Notepad ++-tekstredigereren, hvis kodingen er forskjellig fra utf-8, endrer du kodingen og lagrer den i utf-8-koding via menypunktet "Konverter til utf-8 uten BOM".

koding utf 8 uten bom

Det er ikke noe alternativ

I sammenheng med globalisering, når politisk ogSpråkgrenser slettes, sett med symboler som har lokale egenskaper blir mindre nyttige. Unicode er det eneste tegnsettet som støtter alle lokaliseringer. Og utf-8 er et eksempel på riktig implementering av Unicode, som:

  • støtter et bredt spekter av verktøy, inkludert kompatibilitet med ASCII-koding;
  • er motstandsdyktig mot data korrupsjon;
  • enkel og effektiv i behandlingen;
  • er ikke avhengig av plattformen.

Med fremkomsten av utf-8 diskusjon om hvilken form for koding eller tegnsett er bedre, ble de meningsløse.

</ p>
  • evaluering: