ComputersProgrammering

UTF-8 - tekencodering

Unicode ondersteunt vrijwel alle bestaande karakter sets. De beste vorm van het coderen van Unicode-tekenset is UTF-8-codering. Het ondersteunt compatibiliteit met ASCII, weerstand tegen vervorming van de data, de efficiëntie en het gemak van de verwerking. Maar eerst iets anders.

codeerformulier

Computers werken niet alleen als getallen abstracte wiskundige objecten, alsmede de combinaties van eenheden van opslag en gebruik gegevens met vaste lengte - byte en 32-bits woorden. Encoding standaard moet hiermee rekening houden bij het bepalen hoe te presenteren van het aantal karakters.

Computersystemen, de integers opgeslagen in de geheugencellen van 8 bits (1 byte), 16 of 32 bits. Elk formulier definieert een Unicode, welke sequentie geheugencellen een geheel getal correspondeert met een bepaald symbool. In de standaard zijn er drie verschillende soorten codering Unicode tekens 8, 16 en 32-bits blokken. Zij worden derhalve bekend als UTF-8, UTF-16 en UTF-32. Naam UTF staat voor Unicode Transformation Format. Elk van de drie vormen van codeermiddelen gelijk representatie Unicode-teken heeft voordelen in verschillende toepassingen.

Data-encryptie kan worden gebruikt om alle tekens in de Unicode-standaard te vertegenwoordigen. Daardoor zijn ze volledig compatibel met oplossingen om verschillende redenen, met verschillende vormen van coderen. Elke coderende ondubbelzinnig worden omgezet in een van de andere twee zonder gegevensverlies.

nenalozheniya principe

Iedere vorm Unicode ontwikkeld te betrekken wegens gedeeltelijk overlappen. Bijvoorbeeld, Windows-932 vormt de karakters van één of twee bytes van de code. De sequentielengte afhankelijk van het eerste byte, zodat de eerste byte waarden in de reeks van twee bytes en byte disjunct. Echter, de waarde van één byte en achterste bytesequentie samenvallen. Dit betekent bijvoorbeeld dat het karakter zoeken D (code 44) vindt het per ongeluk afsluiten van het tweede gedeelte van de sequentie van twee bytes letter "D" (code 84 44). Om erachter te komen welke volgorde juist is, dient het programma rekening houden met de vorige bytes.

De situatie is ingewikkeld, als de voorste en achterste bytes match. Dit betekent dat om de dubbelzinnigheid verwijderen van een reverse lookup wordt alvorens het begin van de tekst of de unieke codereeks. Dit is niet alleen inefficiënt, maar is niet beschermd tegen mogelijke fouten, aangezien slechts één verkeerd byte naar de volledige tekst onleesbaar is geworden.

Conversie Unicode voorkomt dit probleem omdat de waarde van de belangrijkste, achterste en een opslageenheid niet dezelfde informatie. Dit zorgt ervoor dat alle Unicode voor het zoeken en vergelijken, nooit het geven van onjuiste resultaten als gevolg van het samenvallen van verschillende delen van het karakter code. Het feit dat deze vormen van codering acht het principe nenalozheniya, onderscheidt hen van andere Oost-Aziatische multi-byte coderingen.

Een ander aspect nonintersection Unicode coderingen is dat elk personage heeft een duidelijke grens. Dit elimineert de noodzaak om een onbepaald aantal eerdere symbolen scannen. Deze functie wordt ook wel self-kloksnelheid codering. Vervorming code eenheden vervalsing van slechts één teken te voeren, en het omliggende tekens nog intact. In de 8-bits conversie, indien de wijzer naar de byte, beginnend met 10xxxxxx (in binaire code) op zoek naar de start van het symbool nodig 1-3 omgekeerde overgangen.

consistentie

Unicode Consortium biedt volledige ondersteuning voor alle 3 vormen van coderingen. Het is belangrijk niet te verzetten tegen UTF-8 en Unicode, alle conversie formaten - even geldig uitvoeringsvormen van de Unicode-coderingsstandaard.

Byte-oriëntatie

Om UTF-32 tekens vertegenwoordigen een 32-bit code eenheid, die samenvalt met de Unicode code nodig. UTF-16 - één of twee 16-bits eenheden. Een UTF-8 maakt gebruik van maximaal 4 bytes.

UTF-8-codering is compatibel met byte georiënteerde ASCII gebaseerde systemen. Het merendeel van de bestaande software en de praktijk van informatie-technologie voor een lange tijd gebaseerd op de voorstelling van karakters in een reeks van bytes. Meerdere protocollen is afhankelijk van de constantheid van ASCII-codering en gebruikt ofwel vermijdt de speciale controle karakters. Een eenvoudige manier aan te passen aan situaties Unicode, gebruikmakend van 8-bits coderen voor Unicode-tekens vertegenwoordigen, elk gelijkwaardig ASCII teken of controleteken. Daartoe en UTF-8-codering.

variabele lengte

UTF-8 - codering met variabele lengte, bestaande uit 8 bits opslageenheden, de hoogste bits die aangeven welk deel van de sequentie van iedere afzonderlijke byte behoort. Een traject van waarden toegewezen aan het eerste element van de codereeks, een - voor de volgende. Dit verschaft disjointness codering.

ASCII

UTF-8-codering wordt volledig ondersteund ASCII codes (0x00-0x7F). Dit betekent dat de Unicode-tekens U + 0000-U + 007F worden in enkelvoudige byte 0x00-0x7F UTF-8 en daarmee onderscheiden van ASCII geworden. Bovendien, om dubbelzinnigheid te vermijden, de waarde 0x00-0x7F niet meer gebruikt worden in een byterepresentatie Unicode tekens. Coderen symbolen neideograficheskih anders dan ASCII, waarbij telkens een reeks van twee bytes. Symbolen variëren U + 0800-U + FFFF worden vertegenwoordigd door drie bytes en aanvullende codes met meer dan U + FFFF vereisen vier bytes.

toepassingsgebied

UTF-8-codering wordt meestal de voorkeur gegeven in het HTML protocol, en dergelijke.

XML is uitgegroeid tot de eerste standaard met volledige ondersteuning voor UTF-8-codering. Normalisatie-instellingen het ook aanraden. Ondersteuning probleem in het URL-adres dat afwijkt van de ASCII-tekens, werd opgelost wanneer het consortium W3C en IETF Engineering Group kwam tot een akkoord over de codering van alle URL-adressen die uitsluitend in UTF-8.

Compatibiliteit met ASCII vergemakkelijkt de overgang naar de nieuwe software. Met UTF-8 werken de meeste tekstverwerkers, met inbegrip van jEdit, Emacs, BBEdit, Eclipse, en "Notepad" het Windows-besturingssysteem. Geen enkele andere vorm van codering Unicode kan niet bogen op een dergelijke steun van de tool.

codering voordeel is dat het bestaat uit een reeks bytes. Met UTF-8 string is gemakkelijk om te werken in C en andere programmeertalen. Dit is de enige vorm van codering, de volgorde niet labels nodig bytes BOM of een verklaring codering in XML.

self-synchronisatie

In een omgeving die gebruik maakt van 8-bit symbolen van de verwerking in vergelijking met andere multi-byte tekensets UTF-8 heeft de volgende voordelen:

  • De eerste byte codesequentie bevat informatie over zijn lengte. Dit verhoogt de efficiëntie van de direct search.
  • Vereenvoudigde vinden van het begin van het symbool als uitgangspunt byte beperkt om een bereik van waarden.
  • Geen kruising byte waarden.

Vergelijk de voordelen

UTF-8-codering is compact. Maar wanneer het wordt gebruikt voor het coderen van Oost-Aziatische tekens (Chinees, Japans, Koreaans, Chinees schrift met behulp van tekens) gebruikt 3-byte-reeksen. Ook UTF-8-codering is inferieur aan andere vormen van codering verwerkingssnelheid. Een binaire sortering lijnen hetzelfde resultaat als de binaire sortering Unicode.

De regeling tekencodering

De regeling karakter codering omvat codeersymbolen vorm en werkwijze voor byte plaatscode eenheden. Het coderingsschema Unicode standaard het gebruik van een eerste bytevolgordemarkering (BOM, bytevolgordemarkering) te bepalen.

Wanneer de BOM UTF-8 eigenschapslabel wordt alleen beperkt door verwijzing naar het gebruik van vormen van codering. Problemen bij het bepalen van de endian UTF-8 zijn, zoals de grootte codeereenheid één byte. Met behulp van de BOM voor deze vorm van codering is noch nodig, noch aanbevolen. BOM optreden in de tekst om te zetten alle coderingen gebruikt bytevolgordemarkering of signatuur voor UTF-8-codering. Een reeks van 3 bytes EF BB BF 16 16 16.

Hoe de UTF-8-codering ingesteld

De HTML-codering UTF-8 wordt geïnstalleerd met de volgende code:

hoofd

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

In PHP UTF-8-codering wordt ingesteld met de functie header () aan het begin van het bestand na het instellen van het uitgangsniveau waarde fout:

˂? Php

error_reporting (-1);

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

Verbinding maken met een MySQL database UTF-8-codering is ingesteld:

˂? Php

mysql_set_charset (utf8);

De CSS-bestand codering is UTF-8-tekens is als volgt:

@charset "UTF-8";

Wanneer u de bestanden opslaan van alle soorten kiezen UTF-8-codering zonder BOM, anders wordt de site zal niet werken. Om dit te doen in DreamWeave nodig hebt om het menu-item "Wijzigingen - Pagina Eigenschappen - Titel / Encoding" te selecteren om de codering te veranderen naar UTF-8. Gevolgd door de pagina te herladen, verwijder het vinkje bij "Connect Unicode-handtekening (BOM)» en de wijzigingen toe te passen. Als tekst op een pagina of in een database een andere vorm van codering werd geïntroduceerd, is het noodzakelijk om opnieuw in te voeren of opnieuw coderen. Wanneer u werkt met reguliere expressies, moet u de modifier u.

U kunt ook het bestand in UTF-8-codering op te slaan in de "Notepad" van Windows. Na het selecteren van het menu "Bestand - Opslaan als ..." om de noodzakelijke vorm van codering te installeren en sla het bestand in UTF-8.

In een teksteditor Notepad ++, indien anders dan UTF-8 ingesteld, via het menu-item "Convert to UTF-8 zonder BOM» veranderen het karakter en op te slaan in UTF-8.

er is geen alternatief

In de context van de mondialisering, waar de politieke en taalkundige grenzen worden gewist, het karakter sets die lokale kenmerken hebben, zijn van weinig nut. Unicode is een tekenset die alle lokalisaties ondersteunt. Een UTF-8 - een voorbeeld van de goede uitvoering van Unicode die:

  • Het ondersteunt een breed scala van instrumenten, met inbegrip van compatibiliteit met ASCII-codering;
  • Het is bestand tegen vervorming data;
  • eenvoudig en effectief bij de behandeling;
  • is platformonafhankelijk.

Met de komst van de UTF-8 discussie over welke vorm van codering of karakter set is beter, wordt het zinloos.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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