KompjuteraProgramimi

UTF-8 - karakter kodues

Unicode mbështet pothuajse të gjitha grupe ekzistuese të karakterit. Formën e mirë të kodon grup karakter Unicode është UTF-8 kodues. Ai mbështet pajtueshmërinë me ASCII, rezistenca për shtrembërimin e të dhënave, efikasitetin dhe lehtësinë e përpunimit. Por gjërat e para të parë.

kodim formë

Kompjuter të veprojë jo vetëm si numra objekte abstrakte matematikore, si dhe kombinimet e njësive të magazinimit dhe trajtimit të dhënat fiks-size - bajt dhe 32-bit fjalë. standarde Encoding duhet të marrë këtë parasysh kur të përcaktuar se si të paraqesë numrin e karaktereve.

Në sistemet kompjuterike, e integers ruhen në qelizat e kujtesës e 8 bit (1 bajt), 16 ose 32 bit. Çdo formë përcakton një kodimin Unicode, që sekuenca e qelizave të memories është një numër i plotë që korrespondon me një simbol veçantë. Në standardin ka tre forma të ndryshme të kodimit karaktereve Unicode 8, 16 dhe 32-bit blloqe. Rrjedhimisht, ata janë të njohur si UTF-8, UTF-16 dhe UTF-32. Emri UTF qëndron për Unicode Format transformim. Secila nga tre format e mjeteve encoding është e barabartë përfaqësimi karakter Unicode ka përparësi në aplikacione të ndryshme.

Data encryption mund të përdoret për të përfaqësuar të gjitha karakteret në standardin Unicode. Kështu, ata janë plotësisht në përputhje me zgjidhje për një sërë arsyesh, duke përdorur forma të ndryshme të kodimit. Çdo coding qartë mund të konvertohet në ndonjë nga dy të tjera, pa humbje të të dhënave.

parimi nenalozheniya

Secili prej encoding forma Unicode zhvilluar në funksion të mbivendosen jo të pjesshme. Për shembull, Windows-932 formon karakteret e një ose dy bytes të kodit. Gjatësia Sekuenca varet nga byte parë, kështu që vlerat kryesore byte në serinë e dy-bajt dhe veçoj vetëm bajt. Megjithatë, vlera e një bajt vetme dhe zvarritës rend bajt mund të përkojë. Kjo do të thotë për shembull se kërkimi karakteri D (kodi 44) mund të gjeni atë gabimisht hyrë në pjesën e dytë të sekuencës së karakterit dy-byte "D" (kodi 84 44). Për të gjetur se cili rend është e saktë, programi duhet të marrë parasysh bytes mëparshme.

Situata është e komplikuar, nëse kryesor dhe zvarritës bytes ndeshje. Kjo do të thotë se në mënyrë për të hequr paqartësi do të jetë një lookup kundërt para se të arrinin fillimin e tekstit ose sekuencë të veçantë kodit. Kjo nuk është vetëm i paefektshëm, por nuk është i mbrojtur nga gabimet e mundshme, pasi që vetëm një bajt gabuar për tekstin e plotë është bërë e paqartë.

Format konvertimit Unicode shmang këtë problem për shkak se vlera e kryesor, duke ndjekur, dhe një njësi e vetme e magazinimit nuk janë të njëjta informacionit. Kjo siguron që të gjitha Unicode për kërkimin dhe krahasimin, nuk jep rezultate të gabuara për shkak të rastësi e pjesëve të ndryshme të kodit karakter. Fakti që këto forma të coding vëzhguar nenalozheniya parim, dallon ata nga Lindja e Azisë encodings tjera multi-byte.

Një aspekt tjetër nonintersection encodings Unicode është se çdo karakter ka një kufi të përcaktuar qartë. Kjo eliminon nevojën për të scan një numër të pacaktuar të simboleve të mëparshme. Ky tipar është quajtur nganjëherë vetë-përbërë encoding. Shtrembërimin e njësive të kodit do të prezantojë një shtrembërim të vetëm një karakter, dhe personazhet përreth janë ende të paprekura. Në 8-bit format conversion, nëse pikat tregues për bajt, duke filluar me 10xxxxxx (në kodin binar) për të gjetur fillimi i simbolit është e nevojshme për një deri në tre tranzicioneve kundërt.

konsistencë

Unicode Consortium mbështet plotësisht të gjitha 3 format e encodings. Është e rëndësishme të mos e kundërshtojnë utf-8 dhe Unicode, si të gjitha formatet e konvertimit - në mënyrë të barabartë formave të vlefshme të mishërim i standardit Unicode karakter-encoding.

Bajt-orientim

Për të përfaqësuar UTF-32 karaktere do të duhet një njësi Kodi 32-bit, e cila përkon me kodin Unicode. UTF-16 - një deri në dy njësi 16-bit. A UTF-8 përdor deri në 4 bajt.

UTF-8 encoding është projektuar të jetë në përputhje me sistemet ASCII-bazuar byte-orientuar. Shumica e programeve ekzistuese dhe praktikën e teknologjisë së informacionit për një kohë të gjatë është mbështetur në përfaqësimin e karaktereve në një sekuencë të bytes. protokollet e shumta varet nga qëndrueshmëria e ASCII encoding dhe përdor të shmang karaktere të veçanta të kontrollit. Një mënyrë e thjeshtë për t'iu përshtatur situatave Unicode mund, duke përdorur 8-bit kodim për përfaqësimin karaktereve Unicode, çdo karakter ekuivalente ASCII ose një karakter të kontrollit. Për këtë qëllim, dhe kjo është UTF-8 encoding.

gjatësi variable

UTF-8 - kodim të gjatësisë të ndryshueshëm, i përbërë nga njësive të ruajtjes 8-bit, bit sipërme cila tregon në të cilin pjesa e sekuencës së secilës bajt individual takon. Një varg i vlerave të caktuara për elementin e parë të rend kodit, një tjetër - për të ardhshëm. Kjo siguron kodimin disjointness.

ASCII

kodet UTF-8 kodues është mbështetur plotësisht ASCII (0x00-0x7F). Kjo do të thotë se personazhet Unicode U + 0000-U + 007F janë konvertuar në të vetëm bajt 0x00-0x7F UTF-8 dhe kështu të bëhet i padallueshëm nga ASCII. Për më tepër, për të shmangur dykuptimësi, vlera 0x00-0x7F nuk përdoren më në një përfaqësim të vetme byte të karaktereve Unicode. Për të shifroj simbolet neideograficheskih tjera se ASCII, duke përdorur një sekuencë të dy bytes. Simbole shkojnë U + 0800-U + FFFF janë përfaqësuar nga tre bytes, dhe kodet shtesë me më shumë se U + FFFF kërkojnë katër bytes.

Fusha e zbatimit

UTF-8 encoding zakonisht i jepet përparësi në protokoll HTML, dhe si.

XML është bërë standard i parë me mbështetje të plotë për UTF-8 encoding. Organizatat standardet gjithashtu të rekomandojë atë. Problemi Mbështetje në adresën URL që është i ndryshëm nga ASCII-karaktere, u zgjidh kur W3C konsorciumi dhe grupi IETF inxhinieri erdhi në një marrëveshje mbi kodimin e të gjitha adresat URL ekskluzivisht në UTF-8.

Compatibility me ASCII lehtëson kalimin në një softuer të ri. Me UTF-8 punon redaktorët më të tekst, duke përfshirë JEdit, Emacs, BBEdit, Eclipse, dhe "Notepad" sistemin operativ Windows. Asnjë formë tjetër e encoding Unicode nuk mund të krenohem me një mbështetje të tillë e mjet.

kodim përfituar është që ajo përbëhet nga një sekuencë e bajt. Me UTF-8 vargut është e lehtë për të punuar në C dhe gjuhë të tjera programimi. Kjo është e vetmja formë e encoding, urdhri nuk kërkon etiketat bytes BOM ose një deklaratë encoding në XML.

vetë-sinkronizimi

Në një mjedis që përdor simbolet 8-bit të përpunimit në krahasim me grupe të tjera të karakterit multi-byte, UTF-8 ka përparësitë e mëposhtme:

  • Sekuenca e parë postar bajt permban informacion mbi gjatësinë e saj. Kjo rrit efikasitetin e kontrollit të drejtpërdrejtë.
  • Thjeshtuar gjetur fillimin e simbolit si byte e fillimit është e kufizuar për një gamë të caktuar të vlerave.
  • Ka vlera ndërprerje byte.

Krahaso përfitimet

UTF-8 kodues është kompakte. Por, kur përdoret për kodimin e karaktere të Azisë Lindore (kineze, japoneze, koreane, kineze shkrim duke përdorur shenja) e përdorur sekuenca 3-byte. Gjithashtu UTF-8 encoding është inferiore ndaj formave të tjera të kodimit shpejtësinë e përpunimit. Rreshta binare klasifikim prodhon të njëjtin rezultat si binar klasifikim Unicode.

Skema karakter encoding

Skema karakter kodimi perfshin simbolet kodimin formën dhe metodë për të vetme bajt njësive kodit vendndodhjen. Për të përcaktuar skemën encoding standarde Unicode siguron përdorimin e një fillestar rendit bajt shenjë (BOM, Byte rendit shenjë).

Kur BOM në UTF-8 tag tipar është i kufizuar vetëm duke iu referuar përdorimit të formave të kodimit. Problemeve në përcaktimin e Endian UTF-8 ka, si madhësia e saj njësi kodimin është një bajt. Përdorimi bom për këtë formë të kodimit as është e nevojshme as të rekomanduar. BOM mund të ndodhë në tekst që do të konvertohet nga codings tjera duke përdorur shenjën e rendit bajt ose nënshkrim për UTF-8 encoding. Është një sekuencë e 3 bajt EF BB 16 16 BF 16.

Si për të vendosur UTF-8 encoding

HTML coding UTF-8 është instaluar me kodin e mëposhtëm:

kryetar

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

Në PHP UTF-8 encoding është vendosur duke përdorur header () funksion në fillim të dosjes pas vendosjes gabimin prodhimit vlerës Niveli:

˂? Php

error_reporting (-1);

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

Për t'u lidhur me një bazë të dhënash MySQL UTF-8 encoding është e vendosur:

˂? Php

mysql_set_charset ( 'UTF8');

CSS-file encoding është karaktere utf-8 është e specifikuar si më poshtë:

@charset "utf-8 ';

Kur ju ruani dosjet e të gjitha llojeve të zgjidhni UTF-8 encoding pa BOM, përndryshe vendrrjet nuk do të funksionojë. Për ta bërë këtë në DreamWeave duhet të zgjidhni pika menu "Modifikimet - Faqe Properties - Titulli / Encoding" e për të ndryshuar kodimin në UTF-8. E ndjekur nga reloading page, hiqni shenjën nga "Connect Unicode nënshkrimit (BOM)» dhe të aplikojnë ndryshimet. Nëse ndonjë tekst në një faqe ose në një bazë të dhënash është futur një formë tjetër e kodim, është e nevojshme për të ri-hyjnë apo të ri-shifroj. Kur ju punoni me shprehje të rregullta, të jetë i sigurt për të përdorur modifikuesi u.

Ju gjithashtu mund të ruani skedarin në UTF-8 encoding në "Notepad" të Windows-it. Pas zgjedhjes pika menu "File - Save As ..." për të instaluar formën e nevojshme të encoding dhe ruani skedarin në UTF-8.

Në një tekst editor Notepad ++, nëse vendosur përveç UTF-8, nëpërmjet menu item "Convert UTF-8 pa BOM» ndryshojë karakterin dhe për të shpëtuar në UTF-8.

nuk ka asnjë alternativë

Në kontekstin e globalizimit, ku kufijtë politike dhe gjuhësore janë fshirë, e përcakton karakterin që kanë karakteristika lokale, janë të përdorimit të vogël. Unicode është një grup i vetëm karakter që mbështet të gjitha lokalizimit. A UTF-8 - një shembull i zbatimit të duhur të Unicode, i cili është:

  • Ajo mbështet një gamë të gjerë të mjeteve, duke përfshirë pajtueshmërinë me ASCII encoding;
  • Është rezistent ndaj të dhënave shtrembërim;
  • thjeshtë dhe efektive ne trajtimin;
  • është platformë e pavarur.

Me ardhjen e debatit të UTF-8 në lidhje me çfarë forme e encoding ose karakter grup është më e mirë, ajo bëhet e pakuptimtë.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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