ComputereProgrammering

UTF-8 - tegnkodning

Unicode understøtter stort set alle eksisterende tegnsæt. Den bedste form for koder Unicode tegnsæt er UTF-8. Det understøtter kompatibilitet med ASCII, modstandsdygtighed over for forvrængning af data, effektivitet og brugervenlighed behandling. Men første ting først.

kodende formular

Computere fungerer ikke kun som tal abstrakte matematiske objekter, samt kombinationerne af lagerenheder og håndtering fast størrelse data - byte og 32-bit ord. Kodning standard skal tage højde for dette, når det bestemmes hvordan man skulle præsentere det antal tegn.

I edb-systemer, de hele tal er lagret i hukommelsescellerne af 8 bit (1 byte), 16 eller 32 bit. Hver formular definerer et Unicode-kodning, hvilken sekvens af hukommelsesceller er et helt tal svarende til en bestemt symbol. I standarden er der tre forskellige former for kodning Unicode-tegn 8, 16 og 32 bit blokke. Følgelig er de kendt som UTF-8, UTF-16 og UTF-32. Navn UTF står for Unicode Transformation Format. Hver af de tre former for koder organer er lige repræsentation Unicode har fordele i forskellige applikationer.

Datakryptering kan bruges til at repræsentere alle tegn i Unicode-standarden. De er således fuldt kompatible til løsninger til en række forskellige årsager, anvendelse af forskellige former for kodning. Hver kodning kan utvetydigt omdannes til nogen af de to andre uden tab af data.

princippet nenalozheniya

Hver af de former Unicode-kodning udviklet i betragtning af ikke partiel overlapning. For eksempel Windows-932 danner tegnene i en eller to bytes af kode. Sekvensen Længden afhænger af den første byte, så de førende byte værdier i serien af to-byte og enkelt byte disjunkte. værdien af en enkelt byte og bageste bytesekvens kan dog sammenfaldende. Dette betyder for eksempel, tegnet søgning D (kode 44) kan finde det fejlagtigt kommer ind i anden del af sekvensen af to-byte tegn "D" (kode 84 44). For at finde ud af, hvilken sekvens er korrekt, bør programmet tage hensyn til de tidligere bytes.

Situationen er kompliceret, hvis den forreste og bageste byte kamp. Dette betyder, at for at fjerne uklarheden vil være en reverse lookup før det når begyndelsen af teksten eller den unikke kodesekvens. Det er ikke kun ineffektivt, men er ikke beskyttet mod eventuelle fejl, da kun en forkert byte til den fulde tekst er blevet ulæselig.

Format konvertering Unicode undgår dette problem, fordi værdien af de førende, afsluttende, og en enkelt enhed af opbevaring er ikke de samme oplysninger. Dette sikrer, at alle Unicode til søgning og sammenligning, aldrig give fejlagtige resultater på grund af sammenfald af forskellige dele af koden karakter. Det faktum, at disse former for kodning overholde princippet nenalozheniya, adskiller dem fra andre østasiatiske multi-byte tegnsæt.

Et andet aspekt nonintersection Unicode-kodning er, at hvert tegn har en klart defineret grænse. Dette eliminerer behovet for at scanne et ubestemt antal tidligere symboler. Denne funktion kaldes selv-clocking kodning. Distortion af kode-enheder vil indføre en fordrejning af kun ét tegn, og de omkringliggende tegn er stadig intakt. I 8-bit format konvertering den, hvis markøren peger på byte, startende med 10xxxxxx (i binær kode) for at finde starten af symbolet er nødvendig for en til tre reverse overgange.

konsistens

Unicode Consortium støtter fuldt ud alle 3 former for kodninger. Det er vigtigt ikke at modsætte sig UTF-8 og Unicode, som alle konvertering formater - ligeværdige former for udførelsesform af Unicode-kodningsstandard.

Byte-orientering

At repræsentere UTF-32 tegn skal bruge en 32-bit kode enhed, som falder sammen med Unicode-koden. UTF-16 - en til to 16-bit enheder. En UTF-8 bruger op til 4 bytes.

UTF-8-kodning er designet til at være forenelig med byte-orienterede ASCII-baserede systemer. De fleste af de eksisterende software og praksis af informationsteknologi i lang tid har påberåbt sig repræsentationen af tegn i en sekvens af bytes. Flere protokoller afhænger af konstans ASCII-kodning og bruger enten undgår de særlige kontrol- tegn. En enkel måde at tilpasse sig situationer Unicode kan, ved hjælp af 8-bit kodning til at repræsentere Unicode-tegn, enhver tilsvarende ASCII-tegn eller en kontrol karakter. Med henblik herpå og det er UTF-8.

variabel længde

UTF-8 - kodning med variabel længde, bestående af 8-bit lagerenheder, de øvre bit, som angiver, hvilken del af sekvensen af hver enkelt byte tilhører. Et interval af værdier tildeles det første element i koden sekvens, en anden - til den næste. Dette tilvejebringer disjointness kodning.

ASCII

UTF-8-kodning er fuldt understøttet ASCII-koder (0x00-0x7F). Det betyder, at de Unicode-tegn U + 0000-U + 007F omdannes til enkelt byte 0x00-0x7F UTF-8 og dermed blive umulig at skelne fra ASCII. Desuden at undgå tvetydighed, at værdien 0x00-0x7F ikke brugt nogen mere i en enkelt byte repræsentation af Unicode-tegn. At kode symboler neideograficheskih bortset ASCII ved anvendelse af en sekvens af to bytes. Symboler spænder U + 0800-U + FFFF er repræsenteret af tre bytes, og yderligere koder med mere end U + FFFF kræver fire bytes.

anvendelsesområde

UTF-8-kodning sædvanligvis foretrækkes i HTML-protokollen, og lignende.

XML er blevet det første standard med fuld understøttelse af UTF-8-kodning. Standarder organisationer anbefaler også det. Støtte problem i URL-adresse, der er forskellig fra de ASCII-tegn, blev løst, da konsortiet W3C og IETF engineering gruppe kom til en aftale om kodning af alle URL-adresser udelukkende i UTF-8.

Kompatibilitet med ASCII letter overgangen til den nye software. Med UTF-8 fungerer de fleste teksteditorer, herunder jEdit, Emacs, BBEdit, Eclipse, og "Notepad" Windows-operativsystemet. Ingen anden form for koder Unicode kan ikke prale af en sådan understøtning af værktøjet.

kodende fordel er, at det består af en sekvens af bytes. Med UTF-8 streng er let at arbejde i C og andre programmeringssprog. Dette er den eneste form for kodning, ordren ikke kræver etiketter bytes BOM eller en kodning erklæring i XML.

selv-synkronisering

I et miljø, der anvender 8-bit symboler af behandlingen sammenlignet med andre multi-byte tegnsæt, UTF-8 har følgende fordele:

  • Den første byte kodesekvens indeholder oplysninger om dens længde. Dette øger effektiviteten af den direkte søgning.
  • Forenklet finde begyndelsen af symbolet som udgangspunkt byte er begrænset til en bestemt række værdier.
  • Ingen krydset byte værdier.

Sammenlign fordele

UTF-8-kodning er kompakt. Men når det bruges til at indkode de østasiatiske tegn (kinesisk, japansk, koreansk, kinesisk skrift ved hjælp af tegn), der anvendes 3-byte sekvenser. Også UTF-8-kodning er lavere end andre former for kodning behandlingshastighed. En binær sorteringslinier giver det samme resultat som den binære sortering Unicode.

Tegnet kodningsskema

Tegnkodningen Ordningen omfatter kodende symboler formular og en fremgangsmåde til enkelt byte placeringskodedata enheder. At bestemme kodningsskemaet Unicode standard tilvejebringer anvendelse af en indledende byterækkefølgemarkeringen (BOM, byterækkefølgemarkeringen).

Når BOM i UTF-8 funktionen tag kun begrænses af henvisning til anvendelsen af former for kodning. Problemer med fastsættelsen af endian UTF-8 har som dets kodende enhedsstørrelse er en byte. Brug af BOM for denne form for kodning hverken kræves eller anbefalet. BOM kan forekomme i teksten, der skal konverteres fra andre kodninger under anvendelse byterækkefølgemarkeringen eller signatur for UTF-8. Er en sekvens af 3 bytes EF BB 16 16 BF 16.

Hvordan man indstiller UTF-8

Den HTML-kodning UTF-8 er installeret med følgende kode:

hoved

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

I PHP UTF-8 indstilles med header () funktion i begyndelsen af filen efter indstilling udgangsniveauet værdi fejl:

˂? Php

error_reporting (-1);

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

For at oprette forbindelse til en MySQL-database UTF-8-kodning er indstillet:

˂? Php

mysql_set_charset ( 'utf8');

CSS-fil kodning er UTF-8 tegn specificeres således:

@charset "utf-8";

Når du gemmer filer af alle typer at vælge UTF-8-kodning uden BOM, ellers sitet vil ikke fungere. For at gøre dette i DreamWeave nødt til at vælge menupunktet "Ændringer - Side Properties - Titel / Kodning" for at ændre kodningen til UTF-8. Efterfulgt af at genindlæse siden, skal du fjerne markeringen fra "Connect Unicode signatur (BOM)» og anvende ændringerne. Hvis nogen tekst på en side eller i en database blev indført en anden form for kodning, er det nødvendigt at genindtræde eller re-encode. Når du arbejder med regulære udtryk, skal du sørge for at bruge modifier u.

Du kan også gemme filen i UTF-8-kodning i "Notesblok" af Windows. Efter valg af menupunktet "Filer - Gem som ..." for at installere den nødvendige form for kodning, og gem filen i UTF-8.

I en teksteditor Notepad ++, hvis den er sat andet end UTF-8, via menupunktet "Konverter til UTF-8 uden BOM» ændre karakteren og gemme i UTF-8.

der intet alternativ

I forbindelse med globaliseringen, hvor politiske og sproglige grænser slettes, de tegnsæt, der har lokale karakteristika, er ikke til megen nytte. Unicode er et enkelt tegnsæt, der understøtter alle lokaliseringer. En UTF-8 - et eksempel på en korrekt gennemførelse af Unicode, som er:

  • Den understøtter en lang række værktøjer, herunder kompatibilitet med ASCII kodning;
  • Det er resistent over for forvrængning data;
  • enkel og effektiv i behandlingen;
  • er uafhængig af platform.

Med fremkomsten af UTF-8 debat om, hvad form for kodning eller tegnsæt er bedre, bliver det meningsløst.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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