KomputilojProgramado

UTF-8 - kodoprezento

Unikodo subtenas preskaŭ ĉiuj ekzistantaj signaroj. La plej bona formo de kodoprezenton Unikodo karakteroj estas UTF-8 kodoprezenton. Ĝi subtenas la kongruon kun ASCII, rezisto al distordo de la datumoj, la efikeco kaj facileco de procesorado. Sed unue aferoj unue.

kodigo formo

Komputiloj agas ne nur kiel nombroj abstraktaj matematikaj objektoj, kaj ankaŭ la kombinoj de unuecoj de stokado kaj manipulado fiksita grandeco datumoj - bajto kaj 32-bita vortojn. Encoding normo devas preni ĉi konsideri al la determini kiel prezenti la nombron de karakteroj.

En komputilsistemoj, la entjeroj stokita en la memoro ĉeloj de 8 bitoj (1 bajto), 16 aŭ 32 bitoj. Ĉiu formo difinas Unikoda kodoprezento, kiu sinsekvo de memoro ĉeloj estas entjero kiu korespondas al aparta simbolo. En la normo estas tri malsamaj formoj de kodigo Unikodo karakteroj 8, 16 kaj 32 bitoj blokas. Laŭe, ili estas konataj kiel UTF-8, UTF-16 kaj UTF-32. Nomo UTF signifas Unikodo Transformo Formato. Ĉiu el la tri formoj de kodigo de rimedoj egalas reprezento Unikodo karaktero havas avantaĝojn en diversaj aplikoj.

Datumoj ĉifrado povas esti uzata por reprezenti ĉiuj karakteroj en la Unikodo normo. Tiel, ili estas tute kongrua al solvoj por diversaj kialoj, uzante malsamaj formoj de kodigo. Ĉiu kodigo povas malambigue esti konvertita en iu ajn el la aliaj du sen perdo de datumoj.

nenalozheniya principo

Ĉiu el la formoj Unikodo kodado disvolvita konsiderante ne parta koincido. Ekzemple, Vindozo-932 formas la karakteroj de unu-du bajtoj de kodo. La sinsekvo longo dependas de la unua bajto, do la ĉefaj bajto valoroj en la serio de du bajtoj kaj sola bajto disa. Tamen, la valoro de unu bajto kaj malantaŭaj bajto sinsekvo povas koincidi. Tio signifas ekzemple, ke la karaktero de serĉo D (kodo 44) povas trovi ĝin erare eniris en la duan parton de la sinsekvo de du bajtoj karaktero "D" (kodo 84 44). Trovi ekstere kiun sinsekvo estas ĝusta, la programo devus konsideri la antaŭa bajtoj.

La situacio estas komplika, se la gvida kaj malantaŭaj bajtoj matĉo. Tio signifas, ke por forigi la ambiguecon estos dorsflanko lookup antaŭ atingi la komenco de la teksto aŭ la unika kodo sinsekvo. Ĉi tio ne nur senutila, sed ne estas protektita kontraŭ ebla eraroj, ĉar nur unu malĝustan bajton por la plena teksto fariĝis nelegebla.

Formato konvertiĝo Unikodo evitas tiun problemon ĉar la valoro de la ĉefa, fina, kaj ununura unuo de stokado ne estas la samaj informoj. Tio certigas ke ĉiuj Unikodo por serĉado kaj komparo, neniam donante erara rezultojn pro la koincido de malsamaj partoj de la karaktero kodo. La fakto, ke tiuj formoj de kodigo observi la principon nenalozheniya, distingas ilin de aliaj orientaziaj mult bajto kodigoj.

Alia aspekto nonintersection Unikodo kodigoj estas ke ĉiu karaktero havas klare difinita limo. Ĉi tio forigas la bezonon skani nedifinita nombro de antaŭaj simboloj. Tiu trajto estas foje nomata mem-clocking kodado. Distordo de kodo unuoj enkondukos distordo de nur unu signo, kaj la ĉirkaŭaj karakteroj estas ankoraŭ sendifektaj. En la 8-bita formato konvertiĝo, se la puntero punktoj al la bajto, komencante 10xxxxxx (en binara kodo) por trovi la komencon de la simbolo estas postulata por unu al tri inversa transiroj.

konsistenco

Unikodo Konsorcio plene subtenas cxiujn 3 formoj de kodigoj. Gravas ne oponas la UTF-8 kaj Unikodo, kiel la tuta konvertiĝo formatoj - same validaj formoj de personigo de la Unikodo karaktero-kodado normo.

Bajto-orientation

Reprezenti UTF-32 karakteroj bezonos 32-bita kodo unuo, kiu koincidas kun la Unikodo kodo. UTF-16 - unu al du 16-bita unuoj. Al UTF-8 uzas ĝis 4 bitokoj.

UTF-8 kodoprezenton estas desegnita por esti kongrua kun bajto orientita ASCII-bazita sistemoj. La plej multaj el la ekzistantaj programaro kaj praktiko de informadiko de longe apogis vin sur la reprezento de karakteroj en sekvenco de bajtoj. Multoblaj protokoloj dependas de la konstantecon de ASCII kodado kaj uzas aŭ evitas la speciala kontrolo karakteroj. Simpla maniero por adaptiĝi al situacioj Unikodo povas, uzante 8 bitoj kodigon por reprezentanta Unikodo karakteroj, iu ekvivalenta ASCII karaktero aŭ kontrolo karaktero. Al ĉi tiu fino, kaj ĝi estas UTF-8 kodoprezenton.

ŝanĝiĝema longitudo

UTF-8 - kodigo de ŝanĝiĝema longitudo, kiu konsistas de 8 bitoj stokado unuoj, la supra pecoj kiuj indikas al kiu parto de la vico de ĉiu individua bajto apartenas. Unu vario de valoroj asignita al la unua elemento de la kodo sinsekvo, alia - por la sekva. Ĉi provizas disjointness kodado.

ASCII

UTF-8 kodoprezenton estas plene subtenata ASCII kodoj (0x00-0x7F). Tio signifas ke la Unikodo karakteroj U + 0000-U + 007F estas konvertita en ununuran bajton 0x00-0x7F UTF-8 kaj tiel fariĝi nedistingebla de ASCII. Cetere, por eviti ambiguecon, la valoro 0x00-0x7F ne uzas plu en unu bitoko reprezento de Unikodo karakteroj. Por kodi simboloj neideograficheskih krom ASCII, uzante sekvencon de du bajtoj. Simboloj intervalas U + 0800-U + FFFF estas reprezentitaj de tri bajtoj, kaj aldonaj kodoj kun pli ol U + FFFF postulas kvar bajtoj.

sfero de aplikaĵo

UTF-8 kodoprezenton kutime donas preferon en la HTML-protokolon, kaj similaj.

XML iĝis la unua normo kun plena subteno por UTF-8 kodoprezenton. Normoj organizoj ankaŭ rekomendas ĝin. Subteno problemo en la URL adreson kiuj malsamas de la ASCII-signoj, estis solvita kiam la konsorcio W3C kaj IETF inĝenierio grupo venis al interkonsento sur la kodita de ĉiuj URL-adresoj ekskluzive en UTF-8.

Kongruo kun ASCII faciligas la transiron al la nova programaro. Kun UTF-8 laboras plej eldonistoj de teksto, inkluzive JEdit, Emacs, BBEdit, Eklipso, kaj "Notepad" la Fenestroj funkcianta sistemon. Neniu alia formo de kodado Unikodo ne povas fanfaroni de tia apogo de la ilo.

kodigo avantaĝo estas, ke ĝi konsistas en sekvenco de bajtoj. Kun UTF-8 kordo estas facile labori en C kaj aliaj programlingvoj. Ĉi tiu estas la sola formo de kodado, la ordo ne postulas etikedojn bajtoj BOM aŭ kodado deklaro en XML.

mem-sincronización

En medio kiu uzas 8 bitoj simboloj de la prilaborado kompare kun aliaj mult-bajto signaroj, UTF-8 havas la sekvajn avantaĝojn:

  • La unua bajto kodo sinsekvo enhavas informojn pri ĝia longo. Ĉi tio pliigas la efikecon de la rekta serĉo.
  • Simpligita trovi la komencon de la simbolo kiel la starta bajto estas limigita al fiksa intervalo de valoroj.
  • Neniu kruciĝo bajto valorojn.

Komparu la avantaĝoj

UTF-8 kodoprezenton estas kompakta. Sed kiam uzata por kodi Orientaziaj signoj (ĉina, japana, korea, ĉina skribo uzante signoj) uzata 3 bajtoj sekvencoj. Ankaŭ UTF-8 kodoprezenton estas malsupera al aliaj formoj de kodigo prilaborado rapido. Duargumenta ordigado linioj produktas la saman rezulton kiel la duuma ordigado Unikodo.

La karaktero kodado skemo

La karaktero kodado skemo konsistas kodado simboloj formon kaj metodon por ununura bajto loko kodo unuoj. Determini la kodado skemo Unikodo normo provizas la uzon de komenca bajto por marko (BOM, Bajto ordon markon).

Kiam la BOM en UTF-8 trajto etikedo estas limigita nur per referenco al la uzo de formoj de kodigo. Problemoj en determinado de la endian UTF-8 havas, kiel ĝia kodado unuo grandeco estas unu bajto. Uzante la BOM por tiu formo de kodigo estas nek postulata nek rekomendita. BOM povas okazi en la teksto por esti igitaj de aliaj kodigoj uzante bajto ordon markon aŭ subskribo por UTF-8 kodoprezenton. Estas vico de 3 bajtoj EF BB 16 16 BF 16.

Kiel elekti la UTF-8 kodigon

La HTML-kodigo UTF-8 estas instalita kun la sekva kodo:

HEAD

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

En PHP UTF-8 kodoprezenton estas metita uzante la kaplinio () funkcio al la komenco de la dosiero post opcio la produktadon nivelo valoro eraro:

˂? Php

error_reporting (-1);

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

Por konekti al MySQL datumbazo UTF-8 kodoprezenton estas metita:

˂? Php

mysql_set_charset ( 'UTF8');

La CSS-dosiero kodado estas UTF-8 signoj estas precizigita jene:

@charset "utf-8";

Kiam vi konservos la dosierojn de ĉiuj tipoj elekti UTF-8 kodoprezenton sen BOM, alie la retejo ne funkcios. Por fari tion en DreamWeave devas elekti la menuero "La modifojn - Paĝo Properties - Titolo / Encoding" ŝanĝi la kodoprezenton UTF-8. Sekvata de reŝargi la paĝon, forigi la marko jam de "Konekti Unikodo subskribon (BOM)» kaj apliki la ŝanĝojn. Se iu teksto sur paĝo aŭ en datumbazo estis prezentita alia formo de kodita, necesas reveni al eniri aŭ re-kodas. Kiam vi laboras kun regulaj esprimoj, nepre uzu la modifilo u.

Vi ankaŭ povas savi la dosieron en UTF-8 kodoprezenton en "Notepad" de Vindozo. Post elekto de la menuero "Dosiero - Konservu kiel ..." instali la necesan formon de kodado kaj savi la dosieron en UTF-8.

En tekstoredaktilo Notepad ++ vi donas escepte UTF-8, pere de la menuero "Konverti al UTF-8 sen BOM» ŝanĝi la karakteron kaj savi en UTF-8.

ne ekzistas alternativo

En la kunteksto de tutmondiĝo, kie politika kaj lingva limoj estas viŝitaj, la ludoj de karakteroj kiuj havas lokajn karakterizaĵojn, estas malmulte uzo. Unikodo estas unuopan signaron kiu ebligas ĉiujn Asimiloj. Al UTF-8 - ekzemplo de la ĝentila ekzekuto de Unikodo, kiu estas:

  • Ĝi apogas larĝan gamon de iloj, inkluzive de kongruo kun ASCII kodado;
  • Estas imuna al distordo datumoj;
  • simpla kaj efika en la traktado;
  • estas platformo sendependa.

Kun la alveno de la UTF-8 debato pri kio formo de kodado aŭ karakteroj estas pli bona, ĝi fariĝas sensignifa.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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