DatamaskinerProgrammering

UTF-8 - tegnkoding

Unicode støtter nesten alle eksisterende tegnsett. Den beste form for koding av Unicode tegnsett er UTF-8. Den støtter kompatibilitet med ASCII, motstand mot forvrengning av dataene, effektiviteten og lette behandling. Det første først.

kodingsskjema

Data virke ikke bare som tall abstrakte matematiske objekter, så vel som kombinasjoner av enheter av lagring og håndtering av fast størrelse data - byte og 32-bits ord. Koding standard må ta hensyn til dette når man skal avgjøre hvordan presentere antall tegn.

I datamaskinsystemer, er hele tall som er lagret i lagercellene 8 bits (1 byte), 16 eller 32 biter. Hver form definerer en Unicode-koding, hvilken sekvens av minneceller er et helt tall som svarer til et bestemt symbol. I standard er det tre forskjellige former for koding Unicode tegn 8, 16 og 32-bit blokker. Følgelig, er de kjent som UTF-8, UTF-16 og UTF-32. Navn UTF står for Unicode Transformation Format. Hver av de tre formene for koder midler er lik representasjon Unicode har fordeler ved forskjellige anvendelser.

Datakryptering kan brukes til å representere alle tegn i Unicode standard. De er således fullt ut kompatibel med løsninger for en rekke årsaker, ved hjelp av ulike former for koding. Hver koding entydig kan omdannes til et hvilket som helst av de to andre uten tap av data.

nenalozheniya prinsippet

Hver av de former Unicode-koding utviklet i lys av ikke delvis overlapping. For eksempel danner Windows-932 tegn av en eller to byte med kode. Sekvenslengden er avhengig av den første byten, slik at den ledende byte-verdier i serie med to-byte og enkelt byte disjunkte. Imidlertid kan verdien av en enkelt byte, og etterfølgende bytesekvens sammenfallende. Dette betyr for eksempel at tegn for D (kode 44) kan finne den feilaktig går inn i den andre del av sekvensen av to-byte tegn "D" (kode 84 44). For å finne ut hvilken sekvens er riktig, skal programmet ta hensyn til tidligere bytes.

Situasjonen er komplisert, hvis ledende og etterfølgende byte kamp. Dette betyr at for å fjerne tvetydigheten vil være en omvendt oppslag før den når begynnelsen av den tekst eller det unike kodesekvens. Dette er ikke bare ineffektivt, men er ikke beskyttet mot mulige feil, siden bare én feil byte til den fullstendige teksten er blitt uleselig.

Format konvertering Unicode unngår dette problemet fordi verdien av de ledende, etterfølgende, og en enkelt enhet av lagring ikke er den samme informasjonen. 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 denne formen for koding observere prinsippet nenalozheniya, som skiller dem fra andre østasiatiske multi-byte kodinger.

Et annet aspekt nonintersection Unicode kodinger er at hvert tegn har en klart definert grense. Dette eliminerer behovet for å skanne et ubestemt antall tidligere symboler. Denne funksjonen kalles selv klokkes koding. Forvrengning av kodeenhetene vil introdusere en forvrengning av bare ett tegn, og de omkringliggende tegnene er fortsatt intakt. I den 8-bits formatkonvertering, dersom pekeren peker til byte, ved å starte med 10xxxxxx (i binær kode) for å finne starten av symbol er nødvendig for én til tre revers overganger.

konsistens

Unicode Consortium støtter fullt ut alle 3 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 tegn vil trenge en 32-bits kodeenheten, som faller sammen med Unicode koden. UTF-16 - en til to 16-bits-enheter. En UTF-8 bruker opp til 4 bytes.

UTF-8 er utformet for å være kompatibel med byte-orientert ASCII-baserte systemer. Mesteparten av eksisterende programvare og praksis av informasjonsteknologi i lang tid satset på representasjon av tegn i en sekvens av bytes. Flere protokoller avhenger av det konstante i ASCII-koding og bruker enten unngår de spesielle styretegn. En enkel måte å tilpasse seg situasjoner Unicode kan, ved anvendelse av 8-bits koder for å representere Unicode tegn, et hvilket som helst tilsvarende ASCII-tegn eller et styretegn. For dette formål, og det er UTF-8.

variabel lengde

UTF-8 - koding av variabel lengde, som består av 8-bits lagerenheter, er de øvre biter som indikerer til hvilken en del av sekvensen av hver enkelt byte tilhører. En rekke verdier som er tildelt det første element av den kodesekvens, en annen - for den neste. Dette gir disjointness koding.

ASCII

UTF-8 støttes fullstendig ASCII-koder (0x00-0x7F). Dette betyr at Unicode tegn U + 0000-U + 007F blir omdannet til en-byte 0x00-0x7F UTF-8 og dermed blir umulig å skille fra ASCII. Dessuten, for å unngå tvetydighet, verdien 0x00-0x7F ikke brukes noe mer i en enkelt byte representasjon av Unicode tegn. Å kode symboler neideograficheskih enn ASCII, ved hjelp av en sekvens av to byter. Symboler varierer U + 0800-U + FFFF er representert ved tre bytes, og ytterligere koder med mer enn U + FFFF kreve fire bytes.

anvendelsesområde

UTF-8 vanligvis er gitt preferanse i HTML-protokollen, og lignende.

XML har blitt den første standarden med full støtte for UTF-8-koding. Standardiseringsorganisasjoner anbefaler det også. Støtte problem i URL-adresse som er forskjellig fra ASCII-tegn, ble løst da konsortiet W3C og IETF ingeniørgruppe kom til enighet om koding av alle URL-adresser utelukkende i UTF-8.

Kompatibilitet med ASCII letter overgangen til den nye programvaren. Med UTF-8 fungerer de fleste tekstbehandlingsprogrammer, inkludert jEdit, Emacs, BBEdit, Eclipse, og "Notisblokk" Windows-operativsystemet. Ingen annen form for koding Unicode kan ikke skilte av en slik bærer av verktøyet.

koding fordel er at den består av en sekvens av byte. Med UTF-8 streng er lett å jobbe i C og andre programmeringsspråk. Dette er den eneste form for koding, rekkefølgen ikke krever etiketter bytes BOM eller en kode erklæring i XML.

selvsynkronisering

I et miljø som anvender 8-bit symboler av behandlingen sammenlignet med andre multi-byte tegnsett, har UTF-8 følgende fordeler:

  • Den første byte kodesekvens som inneholder informasjon om dens lengde. Dette øker effektiviteten av direkte søk.
  • Forenklet finne begynnelsen av symbolet som utgangs byte er begrenset til et bestemt område av verdier.
  • Ingen krysset byte-verdier.

Sammenlign fordelene

UTF-8 er kompakt. Men når det brukes for koding av østasiatiske tegn (kinesisk, japansk, koreansk, kinesisk skrift bruke tegn) brukes 3-bytesekvenser. Også UTF-8 er dårligere enn andre former for koding behandlingshastigheten. En binær sortering linjer frembringer det samme resultat som det binære sortering Unicode.

Tegnkodeskjema

Tegnet Kodeskjemaet omfatter koding symboler form og fremgangsmåte for en-byte plassering kodeenhetene. For å bestemme kodeskjema Unicode standard tilveiebringer anvendelse av en første byte rekkefølge (BOM, Byte rekkefølge).

Når BOM i UTF-8-funksjonen merkelappen er begrenset bare ved henvisning til bruk av former for koding. Problemer med å bestemme endian UTF-8 har som sitt kodende enhetsstørrelse er en byte. Bruke BOM for denne formen for koding er verken nødvendig eller anbefalt. BOM kan forekomme i teksten som skal konverteres fra øvrige koder ved hjelp av byte rekkefølge eller signatur for UTF-8. Er en sekvens på 3 byte EF BB-16 16 BF-16.

Hvordan sette UTF-8-koding

Den HTML-koding UTF-8 er installert med følgende kode:

hEAD

Meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" ˃

I PHP UTF-8 stilles inn ved hjelp av samlerøret () -funksjonen ved begynnelsen av filen etter innstilling av utgangsnivået feilverdi:

˂? Php

error_reporting (1);

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

For å koble til en MySQL database UTF-8 er angitt:

˂? Php

mysql_set_charset ( 'utf8');

CSS-filkodingen er UTF-8 tegn kan spesifiseres som følger:

@charset "UTF-8";

Når du lagrer filer av alle typer velger UTF-8-koding uten BOM, ellers området vil ikke fungere. For å gjøre dette i DreamWeave må velge menypunktet "Modifikasjoner - Sideegenskaper - Tittel / Encoding" for å endre kodingen til UTF-8. Etterfulgt av å laste siden, fjern haken fra "Koble Unicode signatur (BOM)» og lagre endringene. Hvis tekst på en side eller i en database ble innført en annen form for koding, er det nødvendig å gå inn eller re-kode. Når du jobber med regulære uttrykk, sørg for å bruke modifier u.

Du kan også lagre filen i UTF-8-koding i "Notepad" for Windows. Når du har valgt menypunktet "Fil - Lagre som ..." for å installere den nødvendige form for koding og lagre filen i UTF-8.

I en tekst editor Notepad ++ Hvis du setter grensen annet enn UTF-8, via menypunktet "Konverter til UTF-8 uten BOM» endrer karakter og lagre i UTF-8.

det er ikke noe alternativ

I sammenheng med globalisering, der politiske og språklige grenser viskes ut, tegnsett som har lokale særtrekk, er til liten nytte. Unicode er et enkelt tegnsett som støtter alle lokaliseringer. En UTF-8 - et eksempel på en korrekt gjennomføring av Unicode, som er:

  • Den støtter en lang rekke verktøy, herunder kompatibilitet med ASCII-koding;
  • Det er motstandsdyktig mot forvrengning data;
  • enkel og effektiv i behandlingen;
  • er plattformuavhengig.

Med bruk av UTF-8 debatt om hvilken form for koding eller tegnsett er bedre, blir det meningsløst.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 no.birmiss.com. Theme powered by WordPress.