Òdinatè, Pwogram
UTF-8 - karaktè kodaj
Unicode sipòte nòmalman tout ki deja egziste kouche karaktè. Fòm nan pi bon an kodaj Unicode seri karaktè se UTF-8 kodaj. Li sipòte konpatibilite ak ASCII, rezistans nan deformation nan done yo, efikasite nan ak fasilite nan pwosesis. Men, bagay sa premye an premye.
kodaj fòm
Odinatè opere pa sèlman kòm nimewo abstrè objè matematik, osi byen ke konbinezon yo nan inite nan depo ak manyen done fiks gwosè - multiple ak mo 32-ti jan. estanda kodaj dwe pran sa a nan kont lè y ap detèmine ki jan yo prezante ki kantite karaktè.
Nan sistèm òdinatè, nonm antye yo ki estoke nan selil yo memwa nan 8 Bits (1 multiple), 16 oswa 32 Bits. Chak fòm defini yon kodaj Unicode, ki sekans nan selil memwa se yon nonb antye relatif ki koresponn a yon senbòl patikilye. Nan estanda a gen twa diferan fòm kodaj karaktè Unicode 8, 16 ak 32-ti jan blòk. An konsekans, yo li te ye tankou utf-8, UTF-16 ak utf-32. Non utf kanpe pou Unicode Fòma Transfòmasyon. Chak nan twa fòm yo nan kodaj vle di ki egal reprezantasyon pèsonaj Unicode gen avantaj nan aplikasyon pou divès kalite.
ka Done chifreman dwe itilize yo reprezante tout karaktè nan estanda a Unicode. Kidonk, yo yo se konplètman konpatib nan solisyon pou yon varyete de rezon, lè l sèvi avèk diferan fòm kodaj. Ka chak kodaj anbigwite dwe konvèti nan nenpòt nan de lòt san yo pa pèdi ak done yo.
nenalozheniya prensip
Chak nan kodaj nan fòm Unicode devlope nan gade nan ki pa sipèpoze pasyèl. Pou egzanp, Windows ki 932 fòme karaktè yo nan youn oubyen de bytes nan kòd. Longè a sekans depann sou multiple an premye, se konsa valè yo multiple dirijan nan seri a nan de multiple-ak yon sèl dijwen multiple. Sepandan, valè a nan yon multiple sèl ak fin sekans multiple pouvwa kowenside. Sa vle di pou egzanp ke rechèch pèsonaj D a (Kòd 44) ka jwenn li erè antre nan pòsyon an dezyèm nan sekans nan de-multiple karaktè "D" (Kòd 84 44). Pou chèche konnen ki sekans ki kòrèk, pwogram lan ta dwe pran an kont bytes yo anvan yo.
Sitiyasyon an se konplike, si dirijan ak fin bytes match la. Sa vle di ke yo nan lòd yo retire anbigwite a pral gen yon Passage ranvèse anvan yo rive nan konmansman an nan tèks la oswa sekans nan Kòd inik. Sa a se pa sèlman rezèvwa, men se pa sa pwoteje soti nan erè sa posib, depi sèlman yon sèl sa ki mal multiple nan tèks la plen vin ilizibl.
Fòma konvèsyon Unicode evite pwoblèm sa a paske valè a nan dirijan, fin a, ak yon sèl inite ki nan depo yo pa enfòmasyon an menm. Sa a asire ke tout Unicode pou chèche ak konparezon, pa janm bay rezilta inègza akòz konyensidans la nan diferan pati nan kòd la karaktè. Lefèt ke fòm sa yo nan kodaj obsève nenalozheniya nan prensip, fè distenksyon yo soti nan lòt Azyatik ankodin milti-multiple East.
Yon lòt aspè nonintersection Unicode ankodin se ke chak karaktè gen yon fwontyè defini aklè. Sa a elimine bezwen nan analysis yon nimewo endefini nan senbòl anvan yo. se Karakteristik sa a pafwa yo rele pwòp tèt ou-clocking kodaj. Deformation nan inite Kòd, n ap entwodui yon deformation nan sèlman yon karaktè, ak karaktè yo ki antoure yo toujou entak. Nan konvèsyon an fòma 8-bit, si pwen yo konsèy nan multiple an, kòmanse ak 10xxxxxx (nan kòd binè) jwenn se kòmansman an nan senbòl la obligatwa pou youn nan twa tranzisyon ranvèse.
konsistans
Unicode Consortium konplètman sipòte tout fòm 3 nan ankodin. Li enpòtan pou pa ki opoze utf a-8 ak Unicode, tankou tout fòma konvèsyon - egalman fòm ki valab nan reyalizasyon nan estanda a karaktè-kodaj Unicode.
Multiple-oryantasyon
Ki reprezante utf-32 karaktè ap bezwen yon inite Kòd 32-ti jan, ki konyenside avèk kòd la Unicode. UTF-16 - youn nan de inite 16-ti jan. Yon UTF-8 sèvi ak jiska 4 bytes.
se UTF-8 kodaj fèt yo dwe konpatib ak sistèm ASCII ki baze sou multiple-oryante. Pifò nan lojisyèl an ki deja egziste ak pratik nan teknoloji enfòmasyon pou yon tan long konte sou reprezantasyon an nan karaktè nan yon sekans nan bytes. pwotokòl miltip depann sou estabilite an nan ASCII kodaj epi li sèvi ak swa evite karaktè yo kontwòl espesyal. Yon fason ki senp pou adapte yo ak sitiyasyon Unicode kapab, lè l sèvi avèk 8-bit kodaj pou reprezante karaktè Unicode, nenpòt karaktè ASCII ekivalan oswa yon karaktè kontwòl. Pou sa ka fèt, epi li se UTF-8 kodaj.
plase longè
UTF-8 - kodaj nan varyab longè, ki fòme ak inite depo 8-bit, Bits anwo ki endike yo ki yon pati nan sekans nan chak multiple moun ki dwe. Youn seri de valè attribué nan eleman an premye nan sekans lan Kòd, yon lòt - pou pwochen an. Sa a bay disjointness kodaj.
ASCII
kòd ASCII se UTF-8 kodaj konplètman sipòte (0x00-0x7F). Sa vle di ke karaktè yo Unicode U + 0000-U + 007F yo konvèti nan yon sèl multiple 0x00-0x7F UTF-8 e konsa vin konfonn soti nan ASCII. Anplis, pou fè pou evite anbigwite, valè a 0x00-0x7F pa itilize nenpòt ki plis nan yon reprezantasyon multiple sèl nan karaktè Unicode. Programme senbòl neideograficheskih lòt pase ASCII, lè l sèvi avèk yon sekans nan de bytes. Senbòl varye U + 0800-U + ff yo reprezante pa twa bytes, ak kòd lòt ki gen plis pase U + ff mande pou kat bytes.
esfè nan aplikasyon
UTF-8 kodaj anjeneral yo bay preferans nan pwotokòl la HTML, ak renmen an.
te XML vin estanda nan premye ak sipò konplè pou utf-8 kodaj. òganizasyon Standards tou rekòmande pou li. pwoblèm sipò nan adrès la URL ki diferan de ASCII-karaktè yo, yo te rezoud lè W3C a consortium ak ietf gwoup jeni rive nan yon akò sou kodaj la nan tout adrès URL sèlman nan utf-8.
Konpatibilite ak ASCII fasilite tranzisyon an nan lojisyèl an nouvo. Avèk UTF-8 ap travay pi editè tèks, ki gen ladan jedi, Emacs, BBEdit, Eclipse, ak "notepad" sistèm nan fonksyone fenèt yo. Pa gen lòt fòm kodaj Unicode pa ka fè grandizè tout moun ki tankou yon sipò nan zouti a.
kodaj avantaj se ke li gen ladann nan yon sekans nan bytes. Avèk UTF-8 fisèl se fasil nan travay nan C ak lòt lang pwogramasyon. Sa a se fòm nan sèlman nan kodaj, lòd la pa mande pou etikèt bytes BOM oswa yon deklarasyon kodaj nan XML.
pwòp tèt ou-senkronizasyon
Nan yon anviwònman ki sèvi ak senbòl 8-ti jan nan pwosesis la konpare ak lòt aparèy televisyon HD milti-multiple karaktè, UTF-8 gen avantaj ki annapre yo:
- premye Sekans an Kòd multiple gen enfòmasyon sou longè li yo. Sa a ogmante efikasite nan rechèch la dirèk.
- Senplifye jwenn nan konmansman an nan senbòl la kòm multiple an kòmanse limite a sa sèlman yon seri fiks de valè.
- Se pa entèseksyon multiple valè.
Konpare benefis ki genyen
UTF-8 kodaj se kontra enfòmèl ant. Men, lè yo itilize pou kodaj East karaktè Azyatik (Chinwa, Japonè, Koreyen, ekri Chinwa lè l sèvi avèk siy) te itilize sekans 3-multiple. Epitou utf-8 kodaj se enferyè a lòt fòm kodaj vitès pwosesis. Yon binè liy klasman pwodui rezilta a menm jan ak binè a klasman Unicode.
Konplo a pèsonaj kodaj
Konplo a pèsonaj kodaj konprann senbòl kodaj fòm ak metòd pou inite Kòd kote sèl multiple. Pou detèmine konplo a kodaj Unicode estanda bay itilize nan yon multiple lòd inisyal mak (BOM, okte lòd make).
Lè yo BOM a nan utf-8 tag karakteristik limite sèlman nan referans a itilize nan fòm kodaj. Pwoblèm nan pou detèmine si andidan utf-8 genyen, ke gwosè inite kodaj li yo se youn multiple. Lè l sèvi avèk BOM a pou fòm sa a nan kodaj ni mande ni rekòmande. BOM ka rive nan tèks la yo dwe konvèti soti nan lòt codings lè l sèvi avèk mak multiple lòd oswa siyati pou utf-8 kodaj. Èske gen yon sekans nan 3 bytes EF BB 16 16 BF 16.
Kouman yo mete kodaj nan utf-8
HTML nan kodaj se UTF-8 enstale ak kòd sa a:
tèt
Meta http-ekwiv = "Content-Kalite" kontni = "tèks / html; charset = utf-8" ˃
Nan PHP se UTF-8 kodaj mete lè l sèvi avèk header () fonksyon an nan kòmansman an nan dosye a apre mete erè a pwodiksyon nivo valè:
˂? Php
error_reporting (-1);
header ( "Content-jan de: tèks / html; charset = utf-8 ');
Pou konekte avèk yon baz done miskl se UTF-8 kodaj mete:
˂? Php
mysql_set_charset ( 'UTF8');
kodaj nan CSS-dosye se UTF-8 karaktè se espesifye jan sa a:
@charset "utf-8";
Lè ou sove dosye yo nan tout kalite chwazi utf-8 kodaj san yo pa BOM, otreman sit la pa pral travay. Pou fè sa nan DreamWeave bezwen chwazi atik meni "Modifikasyon yo - Page Properties - Tit / kodaj" a chanje kodaj nan utf-8. Ki te swiv pa rupture paj la, retire make nan chèk ki soti nan "Konekte Unicode siyati (BOM)» epi aplike chanjman yo. Si yo te nenpòt tèks sou yon paj oswa nan yon baz done prezante yon lòt fòm kodaj, li nesesè yo re-antre oswa re-programme. Lè w ap travay avèk ekspresyon regilye, asire w ou sèvi ak Modifier la u.
Ou kapab tou sove dosye a nan kodaj UTF-8 nan "notepad a" nan fenèt yo. Apre chwazi atik meni "File a - Save Kòm ..." yo enstale fòm ki nesesè nan kodaj, epi sove dosye a nan utf-8.
Nan yon tèks editè notepad ++, si mete lòt pase utf-8, atravè atik la meni "Konvèti nan utf-8 san yo pa BOM» chanje pèsonaj la, epi sove nan utf-8.
pa gen okenn altènatif
Nan kontèks la nan globalizasyon, kote limit politik ak lengwistik yo efasman, ansanm sa yo, karaktè ki gen karakteristik lokal yo, yo se nan itilize ti kras. Unicode se yon seri pèsonaj sèl ki sipòte tout Lokalizasyon. Yon utf-8 - yon egzanp nan aplikasyon an apwopriye nan Unicode, ki se:
- Li sipòte nan yon pakèt domèn zouti, ki gen ladan konpatibilite ak ASCII kodaj;
- Li se rezistan nan done deformation;
- senp ak efikas nan tretman an;
- se platfòm endepandan.
Avèk avenman a nan deba a UTF-8 sou sa fòm kodaj oswa karaktè seri se pi bon, li vin san sans.
Similar articles
Trending Now