CyfrifiaduronRhaglennu

UTF-8 - amgodio cymeriad

Unicode yn cefnogi bron pob setiau cymeriad presennol. Y ffordd orau o amgodio set nodau Unicode yn UTF-8 amgodiad. Mae'n cefnogi gydnaws â ASCII, ymwrthedd i ystumio y data, effeithlonrwydd a rhwyddineb prosesu. Ond mae pethau cyntaf yn gyntaf.

ffurflen codio

Cyfrifiaduron yn gweithredu nid yn unig fel niferoedd gwrthrychau haniaethol mathemategol, yn ogystal â cyfuniadau o unedau storio a thrin data sefydlog-maint - beit a geiriau 32-bit. Mae'n rhaid i safon Amgodio gymryd hyn i ystyriaeth wrth benderfynu sut i gyflwyno nifer o gymeriadau.

Mewn systemau cyfrifiadurol, mae'r cyfanrifau storio yn y celloedd cof am 8 did (1 beit), 16 neu 32 ddarnau. Mae pob ffurflen yn diffinio amgodio Unicode, sy'n ddilyniant o gelloedd cof yn gyfanrif sy'n cyfateb i'r symbol penodol. Yn y safon mae tri math gwahanol o godio gymeriadau Unicode 8, 16 a 32-bit blociau. Yn unol â hynny, maent yn cael eu hadnabod fel UTF-8, UTF-16 ac UTF-32. Enw UTF sefyll am Unicode Trawsnewid Fformat. Mae pob un o'r tri math o amgodio modd yn gynrychiolaeth cymeriad Unicode gyfartal o fanteision mewn gwahanol geisiadau.

Gellir amgryptio data yn cael ei ddefnyddio i gynrychioli'r holl gymeriadau yn y safon Unicode. Felly, eu bod yn gwbl gydnaws â atebion ar gyfer amrywiaeth o resymau, gan ddefnyddio gwahanol fathau o godio. Gall pob codio ddiamwys eu trosi i unrhyw un o'r ddau arall heb golli data.

egwyddor nenalozheniya

Mae pob un o'r ffurflenni amgodiad Unicode a ddatblygwyd o ystyried gorgyffwrdd heb rhannol. Er enghraifft, Windows-932 yn ffurfio cymeriadau o un neu ddau o bytes o god. Mae hyd dilyniant yn dibynnu ar y beit cyntaf, felly mae'r gwerthoedd beit blaenllaw yn y gyfres o ddwy-beit a disjoint beit sengl. Fodd bynnag, gall y gwerth beit sengl a llusgo dilyniant beit cyd-daro. Mae hyn yn golygu, er enghraifft y gall y chwiliad cymeriad D (cod 44) yn ei chael yn gamgymeriad mynd i mewn i'r ail gyfran o'r dilyniant o ddwy-beit cymeriad "D" (cod 84 44). I gael gwybod pa drefn yn gywir, dylai'r rhaglen yn cymryd i ystyriaeth y bytes blaenorol.

Mae'r sefyllfa yn gymhleth, os yw'r arwain a llusgo bytes gêm. Mae hyn yn golygu y bydd, er mwyn cael gwared ar y amwysedd yn am-edrych cefn cyn cyrraedd dechrau'r testun neu y dilyniant cod unigryw. Mae hyn nid yn unig yn aneffeithlon, ond nid yw'n cael ei warchod rhag gwallau posibl, gan mai dim ond un beit anghywir i'r testun llawn wedi dod yn annarllenadwy.

trosi fformat Unicode yn osgoi y broblem hon gan nad yw'r gwerth y arwain, llusgo, ac un uned storio yn yr un wybodaeth. Mae hyn yn sicrhau fod yr holl Unicode ar gyfer chwilio a chymharu, byth yn rhoi canlyniadau gwallus oherwydd y cyd-ddigwyddiad o wahanol rannau o'r cod cymeriad. Mae'r ffaith bod y mathau hyn o godio arsylwi egwyddor nenalozheniya, eu gwahaniaethu oddi wrth amgodiadau aml-beit Asiaidd Dwyrain eraill.

Agwedd arall nonintersection amgodiadau Unicode yw bod pob cymeriad Mae gan ffin a ddiffinnir yn glir. Mae hyn yn dileu'r angen i sganio nifer amhenodol o symbolau blaenorol. Weithiau gelwir hyn yn nodwedd hunan-clocio amgodio. Bydd Ystumio unedau cod cyflwyno afluniad o dim ond un cymeriad, a'r cymeriadau cyfagos yn dal yn gyfan. Yn y fformat 8-bit trosi, os yw'r pwyntiau pwyntydd i'r beit, gan ddechrau gyda 10xxxxxx (mewn cod deuaidd) i ddod o hyd mae'n ofynnol i'r cychwyn y symbol ar gyfer un i tri throsglwyddiad cefn.

cysondeb

Consortiwm Unicode yn llwyr gefnogi pob un o'r 3 math o amgodiadau. Mae'n bwysig peidio â gwrthwynebu'r UTF-8 a Unicode, gan fod yr holl fformatau trosi - yr un mor ffurfiau dilys o ymgorfforiad o'r safon cymeriad-amgodio Unicode.

Beit-cyfeiriadedd

Cynrychioli UTF-32 nod, bydd angen uned cod 32-bit, sy'n cyd-fynd â'r cod Unicode. UTF-16 - un neu ddwy uned 16-bit. Mae UTF-8 yn defnyddio hyd at 4 bytes.

amgodio UTF-8 yn cael ei gynllunio i fod yn gydnaws â systemau sy'n seiliedig ar ASCII-beit-oriented. Mae'r rhan fwyaf o'r feddalwedd ac arfer o dechnoleg gwybodaeth sydd eisoes yn bodoli am amser hir yn dibynnu ar y gynrychiolaeth o gymeriadau mewn dilyniant o bytes. protocolau lluosog yn dibynnu ar gysondeb o amgodio ASCII ac yn defnyddio naill ai yn osgoi'r cymeriadau rheoli arbennig. Ffordd syml i addasu i sefyllfaoedd gall Unicode, gan ddefnyddio 8-bit codio ar gyfer cynrychioli cymeriadau Unicode, unrhyw gymeriad ASCII cyfwerth neu gymeriad reoli. I'r perwyl hwn, ac mae'n UTF-8 amgodiad.

hyd amrywiol

UTF-8 - godio o hyd amrywiol, yn cynnwys unedau storio 8-bit, mae'r darnau uchaf sy'n dangos i ba ran o'r dilyniant pob beit unigol yn perthyn. Mae un amrediad o werthoedd a ddyrannwyd i'r elfen gyntaf y dilyniant cod, un arall - ar gyfer y nesaf. Mae hyn yn darparu amgodio disjointness.

ASCII

codau ASCII UTF-8 encoding ei gefnogi'n llawn (0x00-0x7F). Mae hyn yn golygu bod y cymeriadau Unicode U + 0000-U + 007F yn cael eu trosi i beit sengl 0x00-0x7F UTF-8 a thrwy hynny yn dod yn gwahaniaethu rhwng ASCII. Ar ben hynny, er mwyn osgoi amwysedd, mae'r gwerth 0x00-0x7F na chaiff ei ddefnyddio mwyach mewn cynrychiolaeth beit unigol o gymeriadau Unicode. I amgodio symbolau neideograficheskih heblaw ASCII, gan ddefnyddio dilyniant o ddau bytes. Symbolau amrywio U + 0800-U + FFFF yn cael eu cynrychioli gan dri bytes, a chodau ychwanegol gyda mwy na U + FFFF angen pedwar bytes.

maes gais

UTF-8 encoding fel arfer yn cael ei roi ffafriaeth yn y protocol HTML, ac yn y blaen.

XML wedi dod yn safon cyntaf gyda chefnogaeth lawn ar gyfer UTF-8 amgodiad. sefydliadau safonau hefyd yn ei argymell. problem cymorth yn y cyfeiriad URL sy'n wahanol i'r ASCII-cymeriadau, penderfynwyd pan ddaeth y W3C consortiwm a grŵp peirianneg IETF i gytundeb ar y codio pob gyfeiriadau URL yn gyfan gwbl yn UTF-8.

Cydnawsedd gyda ASCII yn hwyluso'r broses o drosglwyddo i'r meddalwedd newydd. Gyda UTF-8 yn gweithio y rhan fwyaf o olygyddion testun, gan gynnwys JEdit, Emacs, BBEdit, Eclipse, a "Notepad" y system weithredu Windows. Ni all unrhyw fath arall o amgodio Unicode ymffrostio o gefnogaeth o'r fath o'r offeryn.

codio fantais yw ei fod yn cynnwys dilyniant o bytes. Gyda UTF-8 llinyn yn hawdd i weithio yn C ac ieithoedd rhaglennu eraill. Dyma'r unig fath o amgodio, y gorchymyn nad oes angen labeli bytes BOM neu datganiad encoding yn XML.

hunan-gydamseru

Mewn amgylchedd sy'n defnyddio symbolau 8-bit y prosesu o gymharu â setiau nodau aml-beit arall, mae gan UTF-8 y manteision canlynol:

  • Mae'r dilyniant cod beit cyntaf yn cynnwys gwybodaeth am ei hyd. Mae hyn yn cynyddu effeithlonrwydd y chwiliad uniongyrchol.
  • Simplified dod o hyd ddechrau'r symbol fod y beit cychwyn yn gyfyngedig i ystod benodol o werthoedd.
  • Dim gwerthoedd beit groesffordd.

Cymharwch y manteision

UTF-8 encoding yn gryno. Ond pan gaiff ei ddefnyddio ar gyfer codio cymeriadau Asiaidd Dwyrain (Tseiniaidd, Siapan, Corea, ysgrifennu Tseiniaidd ddefnyddio arwyddion) a ddefnyddir dilyniannau 3-beit. Hefyd UTF-8 amgodio yn israddol i fathau eraill o godio cyflymder prosesu. Mae llinellau didoli deuaidd yn cynhyrchu'r un canlyniad ag y binary didoli Unicode.

Mae'r cynllun amgodio cymeriad

Mae'r cynllun amgodio cymeriad yn cynnwys ffurflen symbolau amgodio a dull ar gyfer unedau lleoliad cod beit sengl. I benderfynu ar y cynllun amgodio safonol Unicode yn darparu y defnydd o marc gorchymyn beit cyntaf (BOM, Byte marc trefn).

Pan fydd y BOM mewn UTF-8 tag nodwedd yn gyfyngedig yn unig gan gyfeirio at y defnydd o ffurflenni o godio. Problemau wrth benderfynu ar y endian UTF-8 yn cael, fel ei faint uned amgodio yn un beit. yn naill ofynnol nac argymhellir gan ddefnyddio'r BOM gyfer y math hwn o godio. Gall BOM ddigwydd yn y testun i'w trosi o codau eraill gan ddefnyddio marc trefn beit neu lofnod i UTF-8 amgodiad. A yw dilyniant o 3 bytes EF BB 16 16 BF 16.

Sut i osod y UTF-8 amgodiad

Mae'r HTML codio UTF-8 yn cael ei osod gyda'r cod canlynol:

Pennaeth

Meta http-gyfwerth = "Cynnwys-Type" content = "text / html; charset = utf-8" ˃

Yn PHP UTF-8 encoding ei osod ddefnyddio'r swyddogaeth pennawd () ar ddechrau'r ffeil ar ôl gosod y gwall gwerth lefel allbwn:

˂? Php

error_reporting (-1);

pennawd ( "Cynnwys-Type: text / html; charset = utf-8 ');

I gysylltu â chronfa ddata MySQL UTF-8 encoding wedi ei osod:

˂? Php

mysql_set_charset ( 'UTF8');

Mae'r amgodio CSS-ffeil cymeriadau UTF-8 wedi ei bennu fel a ganlyn:

@charset "utf-8";

Pan fyddwch yn arbed y ffeiliau o bob math yn dewis UTF-8 amgodio heb BOM, fel arall ni fydd y safle yn gweithio. Er mwyn gwneud hyn yn DreamWeave angen i ddewis y eitem dewislen "Addasiadau - Eiddo Page - Teitl / Encoding" i newid y amgodio i UTF-8. Ddilyn gan ail-lwytho y dudalen, cael gwared ar y marc siec gan "llofnod Connect Unicode" (BOM) a chymhwyso'r newidiadau. Os bydd unrhyw destun ar dudalen neu mewn cronfa ddata ei gyflwyno ffurf arall o codio, mae angen i ail-ymuno neu ail-amgodio. Pan fyddwch yn gweithio gyda mynegiadau rheolaidd, gofalwch eich bod yn defnyddio'r modifier u.

Gallwch hefyd gadw'r ffeil mewn amgodio UTF-8 yn y "Notepad" o Windows. Ar ôl dewis yr eitem dewislen "Ffeil - Save As ..." i osod y ffurf angenrheidiol o amgodio a chadw'r ffeil mewn UTF-8.

Mewn Notepad ++ golygydd testun, os gosodir hwn ar wahân i UTF-8, drwy'r eitem dewislen "Trosi i UTF-8 heb BOM» newid cymeriad ac arbed mewn UTF-8.

nad oes dewis arall

Yng nghyd-destun globaleiddio, lle mae ffiniau gwleidyddol ac ieithyddol yn cael eu dileu, mae'r setiau nodau sydd â nodweddion lleol, o ychydig o ddefnydd. Unicode yn set nodau unigol sy'n cefnogi pob localizations. Mae UTF-8 - enghraifft o weithredu yn briodol Unicode, sef:

  • Mae'n cefnogi ystod eang o offer, gan gynnwys yn gydnaws â amgodio ASCII;
  • Mae'n gwrthsefyll data afluniad;
  • syml ac effeithiol yn y driniaeth;
  • yn llwyfan annibynnol.

Gyda dyfodiad y ddadl UTF-8 am yr hyn y fath o amgodio neu gymeriad set yn well, mae'n dod yn ddiystyr.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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