Unicode կոդավորում 2. Unicode-ի ստեղծման և մշակման նախադրյալներ

Բարև բլոգի կայքի սիրելի ընթերցողներ: Այսօր մենք ձեզ հետ կխոսենք այն մասին, թե որտեղից են գալիս կրակոզյաբրերը կայքում և ծրագրերում, ինչ տեքստային կոդավորումներ կան և որոնք պետք է օգտագործվեն: Եկեք մանրամասն նայենք դրանց զարգացման պատմությանը՝ սկսած հիմնական ASCII-ից, ինչպես նաև դրա ընդլայնված տարբերակներից՝ CP866, KOI8-R, Windows 1251 և վերջացրած Unicode կոնսորցիումի UTF 16 և 8 ժամանակակից կոդավորումներով:

Ոմանց համար այս տեղեկատվությունը կարող է ավելորդ թվալ, բայց դուք կիմանաք, թե որքան հարցեր եմ ստանում ես սողալով դուրս եկած կրակոզյաբրների (անընթեռնելի նիշերի շարքի) վերաբերյալ: Այժմ ես հնարավորություն կունենամ բոլորին հղում անել այս հոդվածի տեքստին և ինքնուրույն գտնել իմ ջամբերը։ Դե, պատրաստվեք կլանել տեղեկատվությունը և փորձեք հետևել պատմությանը:

ASCII - լատիներենի հիմնական տեքստի կոդավորումը

Տեքստային կոդավորումների զարգացումը տեղի է ունեցել ՏՏ ոլորտի ձևավորմանը զուգահեռ, և այս ընթացքում դրանք կարողացել են բավականին փոփոխությունների ենթարկվել։ Պատմականորեն ամեն ինչ սկսվեց EBCDIC-ից, որը ռուսերեն արտասանության մեջ բավականին համահունչ չէր, ինչը հնարավորություն տվեց կոդավորել լատինական այբուբենի տառերը, արաբական թվերը և կետադրական նշանները հսկիչ նիշերով:

Բայց, այնուամենայնիվ, ժամանակակից տեքստային կոդավորումների մշակման մեկնարկային կետը հայտնին է ASCII(Տեղեկատվության փոխանակման ամերիկյան ստանդարտ կոդը, որը ռուսերենում սովորաբար արտասանվում է որպես «ասկի»): Այն նկարագրում է առաջին 128 նիշերը, որոնք առավել հաճախ օգտագործվում են անգլախոս օգտատերերի կողմից՝ լատինատառ, արաբական թվեր և կետադրական նշաններ:

Նույնիսկ ASCII-ում նկարագրված այս 128 նիշերը ներառում էին սպասարկման որոշ նշաններ, ինչպիսիք են փակագծերը, հեշ տողերը, աստղանիշները և այլն: Իրականում, դուք ինքներդ կարող եք տեսնել դրանք.

Հենց այս 128 նիշերն են սկզբնական ASCII տարբերակից, որոնք դարձել են ստանդարտ, և ցանկացած այլ կոդավորման մեջ դուք անպայման կհանդիպեք նրանց, և նրանք կկանգնեն այդ կարգով:

Բայց փաստն այն է, որ տեղեկատվության մեկ բայթի օգնությամբ հնարավոր է կոդավորել ոչ թե 128, այլ մինչև 256 տարբեր արժեքներ (ութի հզորության երկուսը հավասար է 256-ի), հետևաբար, հետո. հիմնական տարբերակըԱսուկան հայտնվեց մի ամբողջ շարք ընդլայնված ASCII կոդավորումներ, որում, բացի 128 հիմնական նիշերից, հնարավոր էր կոդավորել ազգային կոդավորման նշանները (օրինակ՝ ռուսերեն)։

Այստեղ, թերեւս, արժե մի փոքր ավելին ասել այն թվային համակարգերի մասին, որոնք օգտագործվում են նկարագրության մեջ։ Նախ, ինչպես բոլորդ գիտեք, համակարգիչը աշխատում է միայն թվերով երկուական համակարգում, այն է՝ զրոներով և միավորներով («Բուլյան հանրահաշիվ», եթե որևէ մեկը գնացել է քոլեջ կամ դպրոց): , որոնցից յուրաքանչյուրը 2 է հզորությամբ՝ սկսած զրոյից և մինչև երկուսը՝ յոթերորդում.

Դժվար չէ հասկանալ, որ նման կառուցման մեջ կարող են լինել զրոների և միավորների ընդամենը 256 հնարավոր համակցություններ։Բավականին պարզ է թիվը երկուական համակարգից տասնորդականի վերածելը։ Պարզապես պետք է գումարել երկուսի բոլոր ուժերը, որոնցից վերևում կան:

Մեր օրինակում սա 1 է (2-ը մինչև զրոյական հզորությունը) գումարած 8 (երկուսը մինչև 3-րդ հզորությունը), գումարած 32 (երկուսը մինչև հինգերորդ հզորությունը), գումարած 64 (վեցերորդին), գումարած 128 (մինչև յոթերորդ): Ընդհանուր ստանում է 233 դյույմ տասնորդական համակարգհաշվում. Ինչպես տեսնում եք, ամեն ինչ շատ պարզ է.

Բայց եթե ուշադիր նայեք ASCII նիշերով աղյուսակին, կտեսնեք, որ դրանք ներկայացված են տասնվեցական կոդավորման մեջ: Օրինակ՝ Ասուկայում աստղանիշը համապատասխանում է 2A տասնվեցական թվին: Դուք հավանաբար գիտեք, որ տասնվեցական համակարգԲացի արաբական թվերից, թվերը օգտագործվում են նաև լատինատառ A-ից (նշանակում է տասը) մինչև F (նշանակում է տասնհինգ):

Դե, համար թարգմանություն երկուական համարդեպի տասնվեցականդիմել հետևյալ պարզ և ինտուիտիվ մեթոդին. Տեղեկատվության յուրաքանչյուր բայթ բաժանվում է չորս բիթանոց երկու մասի, ինչպես ցույց է տրված վերը նշված սքրինշոթում: Դա. յուրաքանչյուր կես բայթում միայն տասնվեց արժեք (երկուից մինչև չորրորդ ուժ) կարող է կոդավորվել երկուական տարբերակով, որը հեշտությամբ կարող է ներկայացվել որպես տասնվեցական թիվ:

Ընդ որում, բայթի ձախ կեսում հարկ կլինի նորից հաշվել աստիճանները՝ սկսած զրոյից, այլ ոչ թե ինչպես ցույց է տրված սքրինշոթում։ Արդյունքում, որոշ պարզ հաշվարկներով մենք ստանում ենք, որ E9 թիվը կոդավորված է սքրինշոթում: Հուսով եմ, որ իմ պատճառաբանության ընթացքը և այս հանելուկի լուծումը պարզ է դարձել ձեզ համար։ Դե, հիմա շարունակենք, փաստորեն, խոսելով տեքստային կոդավորումների մասին։

Asuka - CP866 և KOI8-R կոդավորումների ընդլայնված տարբերակները կեղծոգրաֆիկությամբ

Այսպիսով, մենք սկսեցինք խոսել ASCII-ի մասին, որն, այսպես ասած, մեկնարկային կետ էր բոլոր ժամանակակից կոդավորումների մշակման համար (Windows 1251, Unicode, UTF 8):

Սկզբում այն ​​պարունակում էր լատինական այբուբենի ընդամենը 128 նիշ, արաբական թվեր և այլ բան, բայց ընդլայնված տարբերակում հնարավոր դարձավ օգտագործել բոլոր 256 արժեքները, որոնք կարող են կոդավորվել մեկ բայթ տեղեկատվության մեջ: Նրանք. հնարավոր դարձավ Ասկիին ավելացնել ձեր լեզվի տառերի նշանները:

Այստեղ հարկ կլինի ևս մեկ անգամ շեղվել՝ պարզաբանելու համար. ինչո՞ւ են մեզ ընդհանրապես անհրաժեշտ կոդավորումներըտեքստերը և ինչու է դա այդքան կարևոր: Ձեր համակարգչի էկրանին խորհրդանիշները ձևավորվում են երկու բանի հիման վրա՝ բոլոր տեսակի նիշերի վեկտորային ձևերի (ներկայացումների) հավաքածուներ (դրանք համատեղ ֆայլերում են) և կոդ, որը թույլ է տալիս դուրս հանել վեկտորային ձևերի այս շարքից (տառատեսակ): ֆայլ) հենց այն խորհրդանիշը, որը պետք է տեղադրվի ճիշտ տեղում:

Հասկանալի է, որ տառատեսակներն իրենք են պատասխանատու վեկտորային ձևերի համար, սակայն օպերացիոն համակարգը և դրանում օգտագործվող ծրագրերը պատասխանատու են կոդավորման համար։ Նրանք. Ձեր համակարգչի ցանկացած տեքստ կլինի բայթերի մի շարք, որոնցից յուրաքանչյուրը կոդավորում է հենց այս տեքստի մեկ նիշը:

Ծրագիրը, որը ցուցադրում է այս տեքստը էկրանին (տեքստի խմբագիր, բրաուզեր և այլն), ծածկագիրը վերլուծելիս կարդում է հաջորդ նիշի կոդավորումը և փնտրում համապատասխան վեկտորի ձևը: ցանկալի ֆայլտառատեսակը, որը միացված է այս տեքստային փաստաթուղթը ցուցադրելու համար: Ամեն ինչ պարզ է և տարօրինակ:

Սա նշանակում է, որ մեզ անհրաժեշտ ցանկացած նիշ (օրինակ՝ ազգային այբուբենից) կոդավորելու համար պետք է կատարվի երկու պայման. մեկ բայթ. Հետեւաբար, նման տարբերակների մի ամբողջ փունջ կա: Ընդլայնված Ասուկայի մի քանի տեսակներ կան միայն ռուսաց լեզվի նիշերը կոդավորելու համար:

Օրինակ, ի սկզբանե հայտնվել է CP866, որում հնարավոր էր օգտագործել ռուսերեն այբուբենի նիշերը և դա ASCII-ի ընդլայնված տարբերակն էր։

Նրանք. դրա վերին մասը լիովին համընկնում էր Asuka-ի հիմնական տարբերակի հետ (128 լատիներեն նիշ, թվեր և ցանկացած այլ խայտառակություն), որը ցուցադրված է հենց վերևում գտնվող սքրինշոթում, բայց CP866 կոդավորմամբ աղյուսակի ստորին հատվածում պատկերված էր հենց սքրինշոթում։ ներքևում և թույլատրվում է կոդավորել ևս 128 նշան (ռուսերեն տառեր և բոլոր տեսակի կեղծ գրաֆիկա).

Տեսեք, աջ սյունակում թվերը սկսվում են 8-ով, քանի որ 0-ից 7 թվերը վերաբերում են հիմնական ASCII մասին (տես առաջին սքրինշոթը): Դա. ռուսերեն «M» տառը CP866-ում կունենա 9C ծածկագիրը (այն գտնվում է 9-ի հետ համապատասխան գծի և տասնվեցական նշումով C թվով սյունակի հատման կետում), որը կարելի է գրել մեկ բայթ տեղեկատվության մեջ, և եթե. կա ռուսերեն տառերով համապատասխան տառատեսակ, այս տառը առանց խնդիրների կցուցադրվի տեքստում:

Որտեղի՞ց այս գումարը: կեղծոգրաֆիա CP866-ում? Բանն այն է, որ ռուսերեն տեքստի այս կոդավորումը մշակվել է դեռևս այն մորթե տարիներին, երբ չկար գրաֆիկական օպերացիոն համակարգերի այնպիսի տարածում, ինչպիսին հիմա է։ Իսկ Dos-ում և նմանատիպ տեքստային օպերացիոն համակարգերում կեղծ գրաֆիկան հնարավորություն տվեց ինչ-որ կերպ դիվերսիֆիկացնել տեքստերի ձևավորումը, և, հետևաբար, CP866-ը և նրա բոլոր մյուս նմանակները Asuka-ի ընդլայնված տարբերակների կատեգորիայից առատ են դրանում:

CP866-ը տարածվել է IBM-ի կողմից, սակայն բացի դրանից, մշակվել են մի շարք կոդավորումներ ռուսերեն նիշերի համար, օրինակ՝ այս տեսակը (ընդլայնված ASCII) կարելի է վերագրել. KOI8-R:

Գործողության սկզբունքը մնում է նույնը, ինչ CP866-ում նկարագրված է մի փոքր ավելի վաղ. տեքստի յուրաքանչյուր նիշը կոդավորված է մեկ բայթով: Սքրինշոթը ցույց է տալիս KOI8-R աղյուսակի երկրորդ կեսը, քանի որ առաջին կեսը լիովին համապատասխանում է հիմնական Asuka-ին, որը ցուցադրված է այս հոդվածի առաջին սքրինշոթում:

KOI8-R կոդավորման առանձնահատկություններից կարելի է նշել, որ նրա աղյուսակում ռուսերեն տառերը այբբենական կարգով չեն, ինչպես, օրինակ, արեցին CP866-ում։

Եթե ​​նայեք հենց առաջին սքրինշոթին (հիմնական մասի, որը ներառված է բոլոր ընդլայնված կոդավորումներում), կնկատեք, որ KOI8-R-ում ռուսերեն տառերը գտնվում են աղյուսակի նույն բջիջներում, ինչ լատինատառ այբուբենի բաղաձայնի տառերը։ նրանց հետ աղյուսակի առաջին մասից։ Դա արվել է ռուսերեն նիշերից լատինական նիշերին անցնելու հարմարության համար՝ հրաժարվելով միայն մեկ բիթից (երկուսը յոթերորդ ուժի կամ 128-ի):

Windows 1251 - ASCII-ի ժամանակակից տարբերակ և ինչու են դուրս գալիս krakozyabry

Տեքստի կոդավորման հետագա զարգացումը կապված էր այն փաստի հետ, որ գրաֆիկական օպերացիոն համակարգերը դառնում էին ժողովրդականություն, և դրանցում կեղծ գրաֆիկա օգտագործելու անհրաժեշտությունը ժամանակի ընթացքում անհետացավ: Արդյունքում առաջացավ մի ամբողջ խումբ, որոնք, ըստ էության, դեռ Ասուկայի ընդլայնված տարբերակներն էին (տեքստի մեկ նիշը կոդավորված է միայն մեկ բայթ տեղեկատվության հետ), բայց արդեն առանց կեղծ գրաֆիկական նիշերի օգտագործման:

Դրանք պատկանում էին, այսպես կոչված, ANSI կոդավորումներին, որոնք մշակվել են Ամերիկյան ստանդարտների ինստիտուտի կողմից։ Ընդհանուր լեզվով ասած, կիրիլյան այբուբենի անունը դեռ օգտագործվում էր ռուսերենի աջակցությամբ տարբերակի համար: Դրա օրինակը կարող է ծառայել.

Այն բարենպաստորեն տարբերվում էր նախկինում օգտագործված CP866-ից և KOI8-R-ից նրանով, որ դրա մեջ կեղծ գրաֆիկական խորհրդանիշների տեղը զբաղեցրել էին ռուսերեն գրատպության բացակայող նշանները (բացառությամբ շեշտադրման նշանի), ինչպես նաև սլավոնական լեզուներով օգտագործվող նշանները: ռուսերենին մոտ (ուկրաիներեն, բելառուսերեն և այլն) ):

Ռուսալեզու կոդավորումների, տառատեսակների արտադրողների և արտադրողների նման առատության շնորհիվ ծրագրային ապահովումԵս անընդհատ գլխացավ էի ունենում, և ես և դու, սիրելի ընթերցողներ, հաճախ դուրս էինք գալիս այդ տխրահռչակներից կրակոզիաբրիերբ շփոթություն առաջացավ տեքստում օգտագործված տարբերակի հետ։

Շատ հաճախ նրանք դուրս էին գալիս հաղորդագրություններ ուղարկելիս և ստանալիս էլ, ինչը հանգեցրեց շատ բարդ փոխակերպման աղյուսակների ստեղծմանը, որոնք, փաստորեն, չկարողացան հիմնովին լուծել այս խնդիրը, և հաճախ նամակագրության օգտատերերը օգտագործում էին խուսափել տխրահռչակ կրակոզյաբրներից՝ օգտագործելով ռուսական կոդավորումները, ինչպիսիք են CP866, KOI8-R կամ Windows 1251:

Փաստորեն, ռուսերեն տեքստի փոխարեն դուրս սողացող կրակոզիաբրին արդյունք էր չարաշահումկոդավորումներ այս լեզվիորը չէր համընկնում այն ​​մեկի հետ, որտեղ այն կոդավորված էր տեքստային հաղորդագրությունսկզբնական շրջանում։

Ենթադրենք, եթե CP866-ով կոդավորված նիշերը փորձեն ցուցադրել՝ օգտագործելով կոդերի աղյուսակ Windows 1251, ապա այս նույն krakozyabry-ն (նիշերի անիմաստ հավաքածու) դուրս կգա՝ ամբողջությամբ փոխարինելով հաղորդագրության տեքստը։

Նմանատիպ իրավիճակ շատ հաճախ տեղի է ունենում, երբ ֆորումներում կամ բլոգներում, երբ ռուսերեն տառերով տեքստը սխալմամբ պահվում է սխալ կոդավորման մեջ, որն օգտագործվում է լռելյայն կայքում կամ սխալ կոդավորման մեջ: տեքստային խմբագիր, որը կոդին ավելացնում է անզեն աչքով չտեսնվող մի խայթոց։

Ի վերջո, նման իրավիճակը բազմաթիվ կոդավորումներով և անընդհատ առաջացող կրակոզյաբրաներով, որոնք հոգնել էին շատերից, նախադրյալներ կային նոր համընդհանուր տարբերակի ստեղծման համար, որը կփոխարիներ բոլոր գոյություն ունեցողներին և վերջապես կլուծեր անընթեռնելի տեքստերի ի հայտ գալու արմատական ​​խնդիրը: . Բացի այդ, գոյություն ուներ այնպիսի լեզուների խնդիր, ինչպիսին է չինարենը, որտեղ լեզվի նիշերը շատ ավելին էին, քան 256-ը:

Unicode - Ունիվերսալ UTF կոդավորումներ 8, 16 և 32

Հարավարևելյան Ասիայի լեզվային խմբի այս հազարավոր նիշերը չեն կարող նկարագրվել մեկ բայթ տեղեկատվության մեջ, որը հատկացվել է ASCII-ի ընդլայնված տարբերակներում նիշերի կոդավորման համար: Արդյունքում ստեղծվել է կոնսորցիում, որը կոչվում է Յունիկոդ(Յունիկոդ - Յունիկոդ Կոնսորցիում) ՏՏ ոլորտի բազմաթիվ առաջնորդների (նրանց, ովքեր արտադրում են ծրագրային ապահովում, ապարատային կոդավորում, տառատեսակներ են ստեղծում) համագործակցությամբ, ովքեր հետաքրքրված էին ունիվերսալ տեքստային կոդավորման առաջացմամբ:

Յունիկոդ կոնսորցիումի հովանու ներքո թողարկված առաջին տարբերակն էր UTF 32... Կոդավորման անվանման համարը նշանակում է բիթերի քանակը, որոնք օգտագործվում են մեկ նիշ կոդավորելու համար: 32 բիթը 4 բայթ տեղեկատվություն է, որը անհրաժեշտ կլինի նոր համընդհանուր UTF կոդավորման մեջ մեկ նիշ կոդավորելու համար:

Արդյունքում նույն ֆայլը ASCII-ի ընդլայնված տարբերակում կոդավորված տեքստով և UTF-32-ում, վերջին դեպքում, կունենա չորս անգամ ավելի մեծ չափ (քաշ): Սա վատ է, բայց հիմա մենք հնարավորություն ունենք կոդավորել երկու նիշերի թիվը, որը հավասար է երեսուն երկրորդ հզորության ( միլիարդավոր կերպարներ, որը կծածկի ցանկացած իսկապես անհրաժեշտ արժեք հսկայական մարժայով):

Բայց եվրոպական խմբի լեզուներով շատ երկրներ կարիք չունեին կոդավորման մեջ օգտագործել այդպիսի հսկայական թվով նիշեր, բայց երբ օգտագործվեց UTF-32, նրանք ստացան տեքստային փաստաթղթերի քաշի քառապատիկ ավելացում ոչնչի համար, և քանի որ արդյունքում՝ ինտերնետ տրաֆիկի և պահվող տվյալների ծավալի ավելացում։ Սա շատ է, և ոչ ոք չէր կարող իրեն թույլ տալ նման թափոններ։

Յունիկոդի զարգացման արդյունքում՝ UTF-16, որն այնքան հաջող ստացվեց, որ լռելյայն ընդունվեց որպես հիմնական տարածք բոլոր այն նշանների համար, որոնք մենք օգտագործում ենք: Այն օգտագործում է երկու բայթ մեկ նիշ կոդավորելու համար: Տեսնենք, թե ինչպես է այս գործը նայում։

Վ օպերացիոն համակարգ Windows, կարող եք հետևել «Սկսել» - «Ծրագրեր» - «Աքսեսուարներ» - «Համակարգային գործիքներ» - «Սիմվոլի քարտեզ» ուղին: Արդյունքում կբացվի աղյուսակ՝ ձեր համակարգում տեղադրված բոլոր տառատեսակների վեկտորային ձևերով: Եթե ​​դուք ընտրում եք « Լրացուցիչ պարամետրեր«Յունիկոդի նիշերի մի շարք, դուք կկարողանաք յուրաքանչյուր տառատեսակի համար առանձին տեսնել դրանում ներառված նիշերի ամբողջ շարքը:

Ի դեպ, դրանցից որևէ մեկի վրա սեղմելով կարող եք տեսնել դրա երկու բայթը UTF-16 կոդըբաղկացած չորս տասնվեցական թվանշաններից.

Քանի՞ նիշ կարելի է կոդավորել UTF-16-ում 16 բիթով: 65536 (երկուսը տասնվեցի չափով), և հենց այս թիվն է ընդունվել որպես բազային տարածություն Յունիկոդում: Բացի այդ, կան դրա հետ կոդավորման եղանակներ և մոտ երկու միլիոն նիշ, բայց սահմանափակվում էին տեքստի մեկ միլիոն նիշերի ընդլայնված տարածությամբ:

Բայց նույնիսկ Unicode կոդավորման այս հաջող տարբերակը մեծ գոհունակություն չբերեց նրանց, ովքեր գրում էին, օրինակ, ծրագրեր միայն անգլերենով, քանի որ ASCII-ի ընդլայնված տարբերակից UTF-16-ին անցնելուց հետո փաստաթղթերի քաշը կրկնապատկվեց (մեկ. բայթ մեկ նիշի համար Aski-ում և երկու բայթ նույն նիշի համար UTP-16-ում):

Յունիկոդ կոնսորցիումում հենց բոլորի և ամեն ինչի գոհունակության համար որոշվեց հանդես գալ. փոփոխական երկարության կոդավորում... Նրանք այն անվանեցին UTF-8: Չնայած անվան ութ թվին, այն իսկապես ունի փոփոխական երկարություն, այսինքն. Տեքստի յուրաքանչյուր նիշը կարող է կոդավորվել մեկից վեց բայթ հաջորդականությամբ:

Գործնականում UTF-8-ում օգտագործվում է միայն մեկից չորս բայթ միջակայքը, քանի որ չորս բայթ կոդից այն կողմ, նույնիսկ տեսականորեն ոչինչ հնարավոր չէ պատկերացնել: Դրանում առկա բոլոր լատիներեն նիշերը կոդավորված են մեկ բայթի մեջ, ինչպես հին լավ ASCII-ում:

Ուշագրավն այն է, որ միայն լատինական այբուբենի կոդավորման դեպքում նույնիսկ այն ծրագրերը, որոնք Unicode-ից չեն հասկանում, դեռ կկարդան այն, ինչ կոդավորված է UTF-8-ում։ Նրանք. Asuka-ի հիմնական մասը հենց նոր անցավ Յունիկոդ կոնսորցիումի այս մտահղացմանը:

Կիրիլյան նիշերը UTF-8-ում կոդավորված են երկու բայթով, իսկ, օրինակ, վրացականները՝ երեք բայթով: Յունիկոդ կոնսորցիումը UTF 16-ը և 8-ը ստեղծելուց հետո լուծեց հիմնական խնդիրը. այժմ մենք ունենք տառատեսակներում կա մեկ ծածկագրի տարածք... Եվ այժմ նրանց արտադրողները կարող են լրացնել այն միայն տեքստային նշանների վեկտորային ձևերով՝ ելնելով իրենց ուժեղ կողմերից և հնարավորություններից: Հիմա նույնիսկ սեթերում։

Վերոնշյալ «Նիշերի աղյուսակում» դուք կարող եք տեսնել, որ տարբեր տառատեսակներ աջակցում են տարբեր թվով նիշերի: Յունիկոդով հարուստ որոշ տառատեսակներ կարող են շատ ծանր լինել: Բայց հիմա դրանք տարբերվում են ոչ թե նրանով, որ ստեղծվել են տարբեր կոդավորումների համար, այլ նրանով, որ տառատեսակ արտադրողը որոշակի վեկտորային ձևերով մեկ ծածկագրի տարածք է լրացրել կամ չի լրացրել մինչև վերջ։

Krakozyabry ռուսերեն տառերի փոխարեն - ինչպես շտկել այն

Հիմա տեսնենք, թե ինչպես են տեքստի փոխարեն հայտնվում կրակոզյաբրաները, կամ, այլ կերպ ասած, ինչպես է ընտրվում ռուսերեն տեքստի ճիշտ կոդավորումը։ Իրականում, այն դրված է այն ծրագրում, որտեղ դուք ստեղծում կամ խմբագրում եք հենց այս տեքստը կամ կոդը՝ օգտագործելով տեքստային հատվածներ:

Խմբագրելու և ստեղծելու համար տեքստային ֆայլերԵս անձամբ շատ լավն եմ օգտագործում, իմ կարծիքով։ Այնուամենայնիվ, այն կարող է ընդգծել ևս հարյուրավոր ծրագրավորման և նշագրման լեզուների շարահյուսությունը, ինչպես նաև կարող է ընդլայնվել պլագինների միջոցով: Կարդացեք մանրամասն վերանայումայս հրաշալի ծրագիրը տրամադրված հղումից:

Notepad ++-ի վերին մենյուում կա «Կոդավորումներ» կետը, որտեղ դուք կկարողանաք վերափոխել գոյություն ունեցող տարբերակը ձեր կայքում լռելյայն օգտագործվող տարբերակին.

Joomla 1.5 և ավելի բարձր տարբերակով կայքի դեպքում, ինչպես նաև WordPress-ում բլոգի դեպքում՝ ճաքերի տեսքից խուսափելու համար ընտրեք տարբերակը. UTF 8 առանց BOM-ի... Ի՞նչ է BOM նախածանցը:

Փաստն այն է, որ երբ մշակվեց YUTF-16 կոդավորումը, ինչ-ինչ պատճառներով նրանք որոշեցին դրան կցել այնպիսի բան, ինչպիսին է նիշերի կոդ գրելու ունակությունը, ինչպես ուղղակի հաջորդականությամբ (օրինակ, 0A15), այնպես էլ հակառակ (150A): . Եվ որպեսզի ծրագրերը հասկանան, թե ինչ հաջորդականությամբ կարդալ կոդերը, և հորինվել է ԲՈՄ(Byte Order Mark կամ, այլ կերպ ասած, ստորագրություն), որն արտահայտվել է փաստաթղթերի հենց սկզբում երեք լրացուցիչ բայթերի ավելացմամբ։

UTF-8 կոդավորման մեջ ոչ մի BOM նախատեսված չէ Յունիկոդ կոնսորցիումում, և, հետևաբար, ստորագրության ավելացումը (այս ամենահեղինակավոր լրացուցիչ երեք բայթը փաստաթղթի սկզբին) պարզապես թույլ չի տալիս որոշ ծրագրեր կարդալ կոդը: Հետևաբար, ֆայլերը UTP-ում պահելիս մենք միշտ պետք է ընտրենք տարբերակը առանց BOM-ի (առանց ստորագրության): Այսպիսով, դուք առաջ եք գնում պաշտպանիր քեզ կրակոզյաբրով դուրս սողալուց.

Հատկանշականն այն է, որ Windows-ի որոշ ծրագրեր չեն կարող դա անել (չեն կարողանում պահպանել տեքստը UTP-8-ում առանց BOM-ի), օրինակ՝ տխրահռչակ Windows Notepad-ը։ Այն պահպանում է փաստաթուղթը UTF-8-ում, բայց դեռ սկզբում ավելացնում է ստորագրություն (երեք հավելյալ բայթ): Ավելին, այս բայթերը միշտ նույնն են լինելու՝ կարդալ կոդը ուղիղ հաջորդականությամբ: Բայց սերվերների վրա, այս մանրուքների պատճառով, կարող է խնդիր առաջանալ՝ krakozyabry-ն դուրս կգա:

Այնպես որ, ոչ մի կերպ մի օգտագործեք սովորական Windows նոթատետրՁեր կայքի փաստաթղթերը խմբագրելու համար, եթե դուք չեք ցանկանում, որ քրակոզյաբրերի տեսքը լինի: Լավագույն և ամենապարզ տարբերակը, կարծում եմ, արդեն նշված Notepad ++ խմբագիրն է, որը գործնականում ոչ մի թերություն չունի և բաղկացած է միայն առավելություններից։

Notepad ++-ում, կոդավորում ընտրելիս, դուք կկարողանաք տեքստը փոխարկել UCS-2 կոդավորման, որն էապես շատ մոտ է Յունիկոդ ստանդարտին: Նաև Notepad-ում հնարավոր կլինի տեքստը կոդավորել ANSI-ով, այսինքն. ռուսաց լեզվի հետ կապված այն արդեն նկարագրված կլինի մեր կողմից Windows 1251-ի վերևում: Որտեղի՞ց է այս տեղեկատվությունը:

Այն գրանցված է ձեր վիրահատարանի գրանցամատյանում: Windows համակարգեր- ո՞ր կոդավորումն ընտրել ANSI-ի դեպքում, որն ընտրել OEM-ի դեպքում (ռուսերենի համար դա կլինի CP866): Եթե ​​ձեր համակարգչում տեղադրեք այլ լռելյայն լեզու, ապա այս կոդավորումները կփոխարինվեն նույն լեզվի ANSI կամ OEM կատեգորիայի նմանատիպերով:

Փաստաթուղթը ձեզ անհրաժեշտ կոդավորման մեջ Notepad ++-ում պահելուց կամ կայքից խմբագրման համար փաստաթուղթը բացելուց հետո կարող եք տեսնել դրա անունը խմբագրի ստորին աջ անկյունում.

Կրակոզյաբրովից խուսափելու համար, բացի վերը նկարագրված գործողություններից, օգտակար կլինի այս կոդավորման մասին տեղեկություն գրել կայքի բոլոր էջերի սկզբնական կոդի վերնագրում, որպեսզի սերվերի կամ տեղական հոսթի վրա խառնաշփոթ չլինի:

Ընդհանուր առմամբ, հիպերտեքստի նշագրման բոլոր լեզուներում, բացառությամբ Html-ի, օգտագործվում է հատուկ xml հռչակագիր, որը ցույց է տալիս տեքստի կոդավորումը:

Նախքան կոդի վերլուծությունը սկսելը, զննարկիչը կիմանա, թե որ տարբերակն է օգտագործվում և կոնկրետ ինչպես պետք է մեկնաբանվեն այս լեզվի նիշերի կոդերը: Բայց ուշագրավն այն է, որ եթե փաստաթուղթը պահպանեք լռելյայն յունիկոդում, ապա այս xml հռչակագիրը կարող է բաց թողնել (կոդավորումը կհամարվի UTF-8, եթե չկա BOM կամ YUTF-16, եթե կա BOM):

Փաստաթղթի դեպքում Html լեզունշելու համար, որ օգտագործվում է կոդավորումը Մետա տարր, որը գրված է բացման և փակման Head պիտակների միջև.

... ...

Այս գրառումը միանգամայն տարբերվում է ընդունվածից, բայց այն լիովին համապատասխանում է խորամանկորեն ներդրված նոր Html 5 ստանդարտին, և այն 100%-ով ճիշտ կհասկանա բոլորի կողմից, որն օգտագործվում է այս պահինբրաուզերներ.

Տեսականորեն մետա տարր՝ կոդավորման նշումով Html փաստաթուղթավելի լավ կլինի դնել որքան հնարավոր է բարձր փաստաթղթի վերնագրումայնպես, որ տեքստի առաջին նիշին հանդիպելու պահին, որը հիմնական ANSI-ից չէ (որը միշտ ճիշտ է կարդացվում և ցանկացած տարբերակով), զննարկիչը պետք է արդեն ունենա տեղեկատվություն, թե ինչպես մեկնաբանել այս նիշերի կոդերը:

Հաջողություն քեզ! Կհանդիպենք շուտով բլոգի կայքի էջերում

Ձեզ կարող է հետաքրքրել

Ինչ URL հասցեներորն է տարբերությունը կայքի համար բացարձակ և հարաբերական հղումների միջև
OpenServer - ժամանակակից տեղական սերվերև դրա օգտագործման օրինակ WordPress-ի տեղադրումներհամակարգչի վրա
Ինչ է Chmod-ը, ինչ թույլտվություններ հատկացնել ֆայլերին և թղթապանակներին (777, 755, 666) և ինչպես դա անել PHP-ի միջոցով
Yandex-ի որոնումը կայքում և առցանց խանութում

Ինտերնետի այս կամ այն ​​գործառույթը կարգավորելիս ցանկացած օգտվող, հավանաբար, հանդիպեց այնպիսի հասկացության, ինչպիսին է «Յունիկոդը»: Պարզելու համար, թե ինչ է նշանակում այս հասկացությունը, կարդացեք այս հոդվածըվերջ տալ։

Unicode: սահմանում

«Յունիկոդ» տերմինն այսօր նշանակում է նիշերի կոդավորման ստանդարտ: Այս ստանդարտըառաջարկվել է 1991 թվականին Unicode Inc. ոչ առևտրային կազմակերպության կողմից: Unicode ստանդարտը նախատեսված էր մեծ թվով տարբեր նիշերի մեկ փաստաթղթում միավորելու համար: Նման կոդավորման հիման վրա ստեղծված էջը կարող է պարունակել հիերոգլիֆներ, տառեր և մաթեմատիկական նշաններ։ Այս կոդավորման մեջ բոլոր նիշերը ցուցադրվում են առանց խնդիրների:

«Յունիկոդ»՝ ստեղծման պատճառները

Յունիկոդ համակարգի հայտնվելուց շատ առաջ կոդավորումներն ընտրվում էին փաստաթղթի հեղինակի նախասիրությունների հիման վրա: Հաճախ այդ պատճառով մեկ փաստաթուղթ կարդալու համար անհրաժեշտ էր տարբեր աղյուսակներ օգտագործել։ Այնուամենայնիվ, դա պետք է արվեր մի քանի անգամ: Սա շատ ավելի դժվարացրեց կյանքը սովորական օգտատերերի համար: Ինչպես նշվեց ավելի վաղ, 1991 թվականին ոչ առևտրային կազմակերպությունը Unicode Inc. առաջարկել է օգտագործել տեղեկատվական կոդավորման նոր տեսակ։ Այս տեսակըկոդավորումը ստեղծվել է ստանդարտների լայն տեսականի համատեղելու համար: Յունիկոդի կոդավորումը հնարավորություն տվեց հասնել անհնարինին՝ ստեղծել գործիք, որն աջակցում է նիշերի հսկայական բազմազանությանը: Ստացված արդյունքը գերազանցեց սպասելիքները. ստացանք փաստաթղթեր, որոնք կարող էին միաժամանակ պարունակել ինչպես ռուսերեն, այնպես էլ անգլերեն տեքստեր, ինչպես նաև մաթեմատիկական արտահայտություններ և լատիներեն: Ստեղծելուց առաջ միասնական համակարգկոդավորման մշակողները ստիպված էին լուծել մի շարք խնդիրներ, որոնք բխում էին արդեն իսկ գոյություն ունեցող հսկայական թվով ստանդարտների առկայությունից. այս պահին... Այս խնդիրներից ամենատարածվածներն էին սահմանափակ նիշերի հավաքածուն, էլվիշ գրությունը, կրկնօրինակ տառատեսակները և տարբեր կոդավորումների փոխակերպման խնդիրը:

«Յունիկոդ». էքսկուրսիա դեպի պատմություն

Պատկերացրեք հետևյալ պատկերը՝ 80-ականների բակում համակարգչային տեխնիկան դեռ այդքան մեծ տարածում չի գտել և ունի այսօրվանից տարբերվող ձև։ Յուրաքանչյուր օպերացիոն համակարգ եզակի է իր ձևով և փոփոխվում է էնտուզիաստների կողմից որոշակի հատուկ կարիքների համար: Արդյունքում տեղեկատվության փոխանակման անհրաժեշտությունը հանգեցրեց լրացուցիչ ճշգրտումների: Երբ փորձում էին կարդալ մեկ այլ օպերացիոն համակարգում ստեղծված փաստաթուղթ, էկրանին սովորաբար ցուցադրվում էին անհասկանալի նիշերի հավաքածուներ: Սա պահանջում էր հետագա աշխատանք կոդավորման հետ, որը միշտ չէ, որ հնարավոր էր արագ անել: Երբեմն պահանջվող փաստաթղթի մշակման համար պահանջվում էր մի քանի ամիս: Օգտատերերը, ովքեր հաճախ ստիպված են լինում փոխանակել տեղեկատվություն, սկսել են իրենց համար հատուկ փոխակերպման աղյուսակներ ստեղծել։ Նման աղյուսակների հետ աշխատելը բացահայտեց մեկ հետաքրքիր առանձնահատկություն՝ անհրաժեշտ է նման աղյուսակներ ստեղծել միաժամանակ երկու ուղղությամբ։ Մեքենան չի կարող կատարել հաշվարկների սովորական հակադարձում: Դրա համար աղբյուրի ֆայլը գրված է աջ սյունակում, իսկ արդյունքը՝ ձախում։ Ընդհակառակը, դրանք չեն կարող վերադասավորվել։ Եթե ​​անհրաժեշտ էր փաստաթղթում օգտագործել որոշ հատուկ նիշեր, նախ դրանք պետք է ավելացվեին, իսկ հետո պետք էր նաև մեկ այլ օգտատիրոջ բացատրել, թե ինչ է պետք անել դրանց հետ, որպեսզի դրանք «կրյակոզյաբրի» չվերածվեն։ Պետք է նաև հաշվի առնել, որ յուրաքանչյուր կոդավորման համար դուք պետք է մշակեիք ձեր սեփական տառատեսակները: Սա հանգեցրեց օպերացիոն համակարգում հսկայական թվով կրկնօրինակների ստեղծմանը: Այսպիսով, օրինակ, մեկ էջում օգտատերը կարող էր տեսնել մի տասնյակ տառատեսակներ, որոնք նույնական են ստանդարտ Times New Roman-ին, բայց նշվել են UCS-2, UTF-16, UTF-8, ANSI: Այսպիսով, կա համընդհանուր ստանդարտ մշակելու անհրաժեշտություն։

Յունիկոդ՝ ստեղծողներ

«Յունիքոդի» ստեղծման պատմության սկիզբը կարելի է վերագրել 1987թ. Հենց այդ ժամանակ էր, որ Xerox-ից Ջո Բեքերը, Apple-ից Մարկ Դևիսի և Լի Քոլինզի հետ միասին, սկսեցին ուսումնասիրել ունիվերսալ կոդավորման գործնական մշակումը: 1988 թվականին Ջո Բեքերը հրապարակեց միջազգային բազմալեզու կոդավորում ստեղծելու նախագիծ։ Մի քանի ամիս անց ընդլայնվեց Յունիկոդի մշակման աշխատանքային խումբը։ Այն ներառում էր փորձագետներ, ինչպիսիք են Գլեն Ռայթը Sun Microsystems-ից, Մայք Քերնեգանը և Քեն Ուիսլերը RLG-ից: Սա հնարավորություն է տվել ավարտին հասցնել կոդավորման միասնական ստանդարտի նախնական ձևավորման աշխատանքները։

Յունիկոդ՝ ընդհանուր նկարագրություն

Յունիկոդի կոդավորումը հիմնված է ընդհանուր հայեցակարգխորհրդանիշ. Այս սահմանումը հասկացվում է որպես վերացական երեւույթ, որը գոյություն ունի գրության տեսքով՝ իրականացվող գրաֆեմների միջոցով։ Յունիկոդում յուրաքանչյուր նիշ կապված է եզակի կոդի հետ, որը պատկանում է ստանդարտի այս կամ այն ​​բլոկին: Այսպիսով, օրինակ, «B» գրաֆեմը առկա է ինչպես անգլերենում, այնպես էլ ռուսերենում, բայց այն համապատասխանում է երկու տարբեր նշանների: Այս նիշերը կարող են նաև վերածվել փոքրատառերի: Սա նշանակում է, որ այս նշաններից յուրաքանչյուրը նկարագրվում է բանալիով, հատկությունների մի շարքով և անունով:

Unicode: Առավելությունները

Այն տարբերվում է «Յունիկոդ» կոդավորման այլ ժամանակակից համակարգերից տարբեր նիշերի «գաղտնագրման» նիշերի հսկայական պաշարով: Բանն այն է, որ նախորդ կոդավորումներն ունեին ընդամենը 8 բիթ։ Սա նշանակում է, որ նրանք աջակցում էին ընդամենը 28 նիշ: Նոր մշակումն ուներ 216 կերպար, ինչը մեծ քայլ էր առաջ։ Այսպիսով, հնարավոր դարձավ կոդավորել գրեթե բոլոր գոյություն ունեցող այբուբենները։ «Յունիկոդի» գալուստով փոխակերպման աղյուսակների օգտագործման անհրաժեշտությունը վերացել է: Մեկ ստանդարտի առկայությունը պարզապես զրոյի հասցրեց դրանց օգտակարությունը: Միաժամանակ անհետացել է նաև «կրյակոզյաբրը»։ Նոր ստանդարտի առաջացումը անհնարին դարձրեց նրանց գոյությունը: Վերացավ նաև կրկնօրինակ տառատեսակներ ստեղծելու անհրաժեշտությունը։

Unicode: զարգացում

Չնայած այն հանգամանքին, որ առաջընթացը դեռ չի կանգնում, Unicode կոդավորումը շարունակում է առաջատար դիրքեր ունենալ աշխարհում: Սա հնարավոր դարձավ մեծապես այն բանի շնորհիվ, որ այն դարձավ հեշտ իրագործելի և լայն տարածում գտավ։ Այնուամենայնիվ, չպետք է ենթադրել, որ նույն Unicode կոդավորումն այսօր օգտագործվում է, ինչ 25 տարի առաջ: Այսօր օգտագործվում է 5.x.x տարբերակը: Կոդավորված նիշերի թիվն ավելացել է մինչև 231: Իր ստեղծման օրվանից մինչև 2.0.0 տարբերակի թողարկումը, Յունիկոդի կոդավորումը գրեթե կրկնապատկել է իր մեջ ներառված նիշերի թիվը: Հետագա տարիներին հնարավորությունների այս աճը շարունակվեց։ Երբ հայտնվեց 4.0.0 տարբերակը, անհրաժեշտություն առաջացավ ինքնին բարձրացնել ստանդարտը: Արդյունքում Յունիկոդի կոդավորումը ձեռք բերեց այն ձևը, որով մենք այն գիտենք այսօր:

Էլ ի՞նչն է օգտակար Յունիկոդում: Բացի նիշերի հսկայական, անընդհատ աճող թվից, Յունիկոդի կոդավորումն ունի մեկ բավականին օգտակար հատկություն. Սա նորմալացում է։ Կոդավորումը չի վատնում համակարգչային ռեսուրսները միևնույն նիշի կանոնավոր ստուգման վրա, որը կարող է ունենալ տարբեր այբուբենների նման ուղղագրություն: Այդ նպատակով օգտագործվում է հատուկ ալգորիթմ, որը հնարավորություն է տալիս նմանատիպ սիմվոլները առանձին-առանձին ներկայացնել գրաֆիկի մեջ և հղում կատարել դրանց, այլ ոչ թե ամեն անգամ ստուգել ամբողջ տեղեկատվությունը։ Ընդհանուր առմամբ, մշակվել և ներդրվել է չորս նման ալգորիթմ։ Նրանցից յուրաքանչյուրում փոխակերպումն իրականացվում է մյուսներից տարբերվող որոշակի սկզբունքով։

Ինտերնետից յուրաքանչյուր օգտվող, փորձելով կարգավորել իր գործառույթներից մեկը, գոնե մեկ անգամ էկրանին տեսել է «Յունիկոդ» գրավոր բառը: Դուք կիմանաք, թե ինչ է դա՝ կարդալով այս հոդվածը։

Սահմանում

Յունիկոդի կոդավորումը նիշերի կոդավորման ստանդարտ է: Այն առաջարկել է Unicode Inc. ոչ առևտրային կազմակերպությունը: 1991 թվականին։ Ստանդարտը նախատեսված է մեկ փաստաթղթում հնարավորինս շատ տարբեր տեսակի նիշեր միավորելու համար: Էջը, որը ստեղծվել է դրա հիման վրա, կարող է պարունակել տարբեր լեզուներից տառեր և հիերոգլիֆներ (ռուսերենից կորեերեն) և մաթեմատիկական նշաններ: Այս դեպքում այս կոդավորման բոլոր նիշերը ցուցադրվում են առանց խնդիրների:

Ստեղծման պատճառները

Ժամանակին, «Յունիկոդ» միասնական համակարգի ի հայտ գալուց շատ առաջ, կոդավորումն ընտրվում էր փաստաթղթի հեղինակի նախասիրությունների հիման վրա։ Այդ իսկ պատճառով, հաճախ, մեկ փաստաթուղթ կարդալու համար պետք էր օգտագործել տարբեր սեղաններ... Երբեմն դա պետք է արվեր մի քանի անգամ, ինչը զգալիորեն բարդացնում էր սովորական օգտատիրոջ կյանքը։ Ինչպես արդեն նշվել է, այս խնդրի լուծումը 1991 թվականին առաջարկել է Unicode Inc. ոչ առևտրային կազմակերպությունը, որն առաջարկել է նիշերի կոդավորման նոր տեսակ։ Այն նախատեսված էր համատեղելու հնացած և բազմազան ստանդարտները: «Յունիկոդը» կոդավորում է, որը թույլ է տվել հասնել այն ժամանակվա աներևակայելիին՝ ստեղծել մի գործիք, որն աջակցում է հսկայական թվով նիշերի: Արդյունքը գերազանցեց շատ սպասելիքներ. միաժամանակ հայտնվեցին փաստաթղթեր, որոնք պարունակում էին ինչպես անգլերեն, այնպես էլ ռուսերեն տեքստեր, լատիներեն և մաթեմատիկական արտահայտություններ:

Բայց մեկ կոդավորման ստեղծմանը նախորդել էր մի շարք խնդիրների լուծման անհրաժեշտությունը, որոնք առաջացել էին այն ժամանակ արդեն գոյություն ունեցող ստանդարտների հսկայական բազմազանության պատճառով: Ամենատարածվածներն են.

  • Էլֆերեն տառեր կամ «krakozyabry»;
  • սահմանափակ նիշերի հավաքածու;
  • կոդավորումների փոխակերպման խնդիրը;
  • տառատեսակների կրկնօրինակում.

Փոքրիկ պատմական էքսկուրսիա

Պատկերացրեք, որ 80-ականներն են։ Համակարգչային տեխնոլոգիադեռ այնքան էլ տարածված չէ և այսօրվանից տարբեր ձև ունի։ Այդ ժամանակ յուրաքանչյուր ՕՀ-ն եզակի է իր ձևով և փոփոխվում է յուրաքանչյուր էնտուզիաստի կողմից հատուկ կարիքների համար: Տեղեկատվության փոխանակման անհրաժեշտությունը վերածվում է աշխարհում ամեն ինչի լրացուցիչ ճշգրտման։ Այլ ՕՀ-ով ստեղծված փաստաթուղթը կարդալու փորձը հաճախ ցուցադրում է նիշերի անհասկանալի շարք էկրանին, և կոդավորումով խաղերը սկսվում են: Միշտ չէ, որ դա հնարավոր է արագ անել, և երբեմն անհրաժեշտ փաստաթուղթը կարող է բացվել վեց ամիս հետո կամ նույնիսկ ավելի ուշ: Մարդիկ, ովքեր հաճախ են փոխանակում տեղեկատվություն, իրենց համար ստեղծում են փոխակերպման աղյուսակներ: Եվ հիմա դրանց վրա աշխատանքը բացահայտում է հետաքրքիր մանրամասնդրանք պետք է ստեղծվեն երկու ուղղությամբ՝ «իմից քոնը» և հակառակը։ Մեքենան չի կարող հաշվարկների սովորական շրջադարձ կատարել, քանի որ դրա աջ սյունակում աղբյուրն է, իսկ ձախում՝ արդյունքը, բայց ոչ հակառակը։ Եթե ​​փաստաթղթում որևէ հատուկ նիշ օգտագործելու անհրաժեշտություն կար, դրանք նախ պետք է ավելացվեին, իսկ հետո նաև գործընկերոջը բացատրեին, թե ինչ պետք է աներ, որպեսզի այդ նիշերը չվերածվեին «կրակոզյաբրի»: Եվ չմոռանանք, որ յուրաքանչյուր կոդավորման համար դուք պետք է մշակեիք կամ իրականացնեիք ձեր սեփական տառատեսակները, ինչը հանգեցրեց ՕՀ-ում հսկայական թվով կրկնօրինակների ստեղծմանը:

Պատկերացրեք նաև, որ տառատեսակների էջում կտեսնեք 10 նույնական Times New Roman փոքր ծանոթագրություններով՝ UTF-8, UTF-16, ANSI, UCS-2 համար: Հիմա հասկանու՞մ եք, որ համընդհանուր ստանդարտ մշակելը հրամայական էր:

«Արարիչ հայրեր»

Unicode-ի ակունքները կարելի է գտնել 1987 թվականին, երբ Ջո Բեքերը Xerox-ից Լի Քոլինզի և Մարկ Դևիսի հետ միասին Apple-ից սկսեցին ուսումնասիրություններ կատարել համընդհանուր կերպարների հավաքածուի գործնական ստեղծման ուղղությամբ: 1988 թվականի օգոստոսին Ջո Բեքերը հրապարակեց 16-բիթանոց միջազգային բազմալեզու կոդավորման համակարգի առաջարկի նախագիծը:

Մի քանի ամիս անց աշխատանքային խումբ Unicode-ն ընդլայնվեց՝ ներառելով RLG-ից Քեն Ուիսլերին և Մայք Քերնեգանին, Sun Microsystems-ից Գլեն Ռայթին և մի քանի ուրիշներին՝ ավարտելով նախնական աշխատանքը ընդհանուր կոդավորման ստանդարտի վրա:

ընդհանուր նկարագրությունը

Յունիկոդը հիմնված է կերպար հասկացության վրա։ Այս սահմանումը հասկացվում է որպես վերացական երևույթ, որը գոյություն ունի գրելու կոնկրետ ձևի մեջ և իրականացվում է գրաֆեմաների (դրանց «դիմանկարների» միջոցով): Յուրաքանչյուր նիշ «Յունիկոդում» նշվում է ստանդարտի կոնկրետ բլոկին պատկանող եզակի կոդով: Օրինակ, կա B գրաֆեմ և անգլերեն, և ռուսերեն այբուբեններում, բայց Յունիկոդում այն ​​համապատասխանում է 2 տարբեր նիշերի։ Նրանց վրա կիրառվում է փոխակերպում, այսինքն՝ նրանցից յուրաքանչյուրը նկարագրվում է տվյալների բազայի բանալիով, հատկությունների մի շարքով և լրիվ անունով։

Յունիկոդի առավելությունները

Յունիկոդի կոդավորումը տարբերվում էր իր մնացած ժամանակակիցներից նիշերի «գաղտնագրման» համար նախատեսված նիշերի հսկայական քանակով: Փաստն այն է, որ նրա նախորդներն ունեին 8 բիթ, այսինքն՝ աջակցում էին 28 նիշ, բայց նոր զարգացումարդեն ուներ 216 կերպար, ինչը հսկա առաջընթաց էր: Սա հնարավորություն տվեց կոդավորել գրեթե բոլոր գոյություն ունեցող և ընդհանուր այբուբենները։

«Յունիկոդի» հայտնվելով կարիք չկար օգտագործել փոխակերպման աղյուսակներ. ինչպես միասնական ստանդարտնա պարզապես հերքեց նրանց կարիքը: Նմանապես, «կրակոզիաբրիները» մոռացության են մատնվել. մեկ ստանդարտը նրանց անհնար է դարձրել, ինչպես նաև վերացրել է կրկնօրինակ տառատեսակներ ստեղծելու անհրաժեշտությունը:

Յունիկոդի մշակում

Իհարկե, առաջընթացը դեռ չի կանգնում, և առաջին շնորհանդեսից անցել է 25 տարի։ Այնուամենայնիվ, Յունիկոդի կոդավորումը համառորեն պահպանում է իր դիրքն աշխարհում։ Շատ առումներով դա հնարավոր դարձավ շնորհիվ այն բանի, որ այն հեշտությամբ իրականացվեց և լայն տարածում գտավ՝ ճանաչվելով որպես սեփականության (վճարովի) և բաց կոդով ծրագրաշարի մշակող։

Միևնույն ժամանակ, չպետք է ենթադրել, որ այսօր մեզ հասանելի է նույն Unicode կոդավորումը, ինչ քառորդ դար առաջ։ Այս պահին դրա տարբերակը փոխվել է 5.х.х, իսկ կոդավորված նիշերի թիվը հասել է 231-ի: Նիշերի ավելի մեծ պաշար օգտագործելու հնարավորությունը լքված է, որպեսզի դեռ պահպանվի Unicode-16-ի աջակցությունը (կոդավորումներ, որտեղ նիշերի առավելագույն թիվը սահմանափակվել է 216-ով): Իր ստեղծման օրվանից և մինչև 2.0.0 տարբերակը, «Յունիկոդ ստանդարտը» գրեթե կրկնապատկել է իր պարունակած նիշերի թիվը: Հնարավորությունների աճը շարունակվեց նաև հաջորդ տարիներին։ 4.0.0 տարբերակով անհրաժեշտություն կար ինքնին բարձրացնել ստանդարտը, ինչն արվեց։ Արդյունքում «Յունիկոդը» ձեռք բերեց այն ձևը, որով մենք գիտենք այսօր։

Էլ ի՞նչ կա Յունիկոդում:

Բացի խորհրդանիշների հսկայական, անընդհատ աճող թվից, այն ունի ևս մեկ օգտակար հատկություն. Սա այսպես կոչված նորմալացումն է։ Ամբողջ փաստաթղթի նիշ առ նիշ ոլորելու և որոնման աղյուսակից համապատասխան պատկերակները փոխարինելու փոխարեն օգտագործվում է գոյություն ունեցող նորմալացման ալգորիթմներից մեկը: Ինչի՞ մասին ենք խոսում։

Փոխանակ հաշվողական ռեսուրսները վատնելու միևնույն նշանի կանոնավոր ստուգման վրա, որը կարող է նման լինել տարբեր այբուբեններում, օգտագործվում է հատուկ ալգորիթմ։ Այն թույլ է տալիս փոխարինման աղյուսակի առանձին սյունակում հանել նմանատիպ նիշերը և անդրադառնալ դրանց, այլ ոչ թե նորից ու նորից ստուգել բոլոր տվյալները:

Մշակվել և ներդրվել են չորս նման ալգորիթմներ։ Դրանցից յուրաքանչյուրում փոխակերպումը տեղի է ունենում մյուսներից տարբերվող խիստ սահմանված սկզբունքով, հետևաբար հնարավոր չէ դրանցից որևէ մեկն անվանել ամենաարդյունավետը։ Յուրաքանչյուրը մշակվել է հատուկ կարիքների համար, ներդրվել և հաջողությամբ օգտագործվում է:

Ստանդարտի բաշխում

Իր պատմության 25 տարիների ընթացքում Յունիկոդի կոդավորումը, հավանաբար, ամենաշատ օգտագործվողն է աշխարհում: Ծրագրերը և վեբ էջերը նույնպես հարմարեցված են այս ստանդարտին: Այն փաստը, որ Յունիկոդն այսօր օգտագործվում է ինտերնետային ռեսուրսների ավելի քան 60%-ի կողմից, կարող է ցույց տալ կիրառման լայնությունը:

Այժմ դուք գիտեք, թե երբ է ստեղծվել Unicode ստանդարտը: Ինչ է դա, դուք նաև գիտեք և կկարողանաք գնահատել Unicode Inc-ի մի խումբ մասնագետների կողմից արված գյուտի ողջ նշանակությունը: ավելի քան 25 տարի առաջ:

Այս կայքը ճիշտ գործելու համար պահանջում է JavaScript: Խնդրում ենք միացնել JavaScript-ը ձեր բրաուզերի կարգավորումներում:

Unicode նիշերի աղյուսակ

ցույց տալ ամբողջը
Տարածք՝ 0000-001F. Կառավարման նիշեր C0 0020-007F. Հիմնական լատիներեն 0080-009F. Կառավարման նիշեր C1 00A0-00FF. Ընդլայնված Լատինական-1 նիշ 0100-017F. Ընդլայնված Լատինական-A 0180-024 Լատին. Միջազգային հնչյունական այբուբենի ընդլայնված նիշերի հավաքածու 02B0-02FF. Չհամատեղելի ընդլայնված նիշ-փոփոխիչներ 0300-036F. Համակցված դիակրիտիկ 0370-03FF. հունարեն և ղպտիական այբուբեններ 0400-04FF: կիրիլիցա 0520F: հավելյալ-050F 050F: Հայերեն այբուբեն 0590 -05FF՝ եբրայերեն 0600-06FF՝ արաբերեն 0700-074F՝ սիրիերեն 0750-077F՝ հավելյալ արաբական տառեր 0780-07BF՝ Tana (Մալդիվերեն) 07C0-07FF: Nko 0800-080FH:Sam 0800-080F 08FF՝ արաբական A-Ընդլայնված նիշերի հավաքածու 0900-097F՝ Դևանագարի 0980-09FF՝ բենգալերեն 0A00-0A7F՝ Գուրմուխի 0A80-0AFF՝ գուջարաթի 0B00-0B7F՝ Օրիյա 0B80-0BF70միլ: 0C80-0CFF՝ կաննադա 0D00-0D7F՝ մալայալամ 0D80-0DFF՝ սինհալերեն 0E00-0E7F՝ թայերեն 0E80-0EFF՝ լաոսերեն 0F00-0FFF՝ տիբեթերեն 1000-109F՝ մյանմար 1000-109F՝ մյանմար, 1000, 100, 100, վրացերեն, 1000, 109, 109, 10, 10, 10, 10, 10, վրացերեն, 1000, 100, վրացերեն, 1: -137F. Եթովպական վանկային գիր 1380-139F. Եթովպական գրագրության հավելյալ նիշեր 13A0-13FF. Չերոկիական գիր 1400-167F. Կանադական վանկային գիր 1680-169F: Ogam 16A0-16FF7: Ogam 16A0-16FF7: Hanunoo 1740-175F: Buhid 1760-177F: Tagbanwa 1780-17FF: Թայերեն գիր 1800-18AF: Հին մոնղոլական գիր 18B0-18FF: Ընդլայնված կանադական վանկային գիր 1900-194F: 1900-194F: այբուբենային սալիկներ 19E0-19FF. քմերերեն նիշ 1A00-1A1F: Բուգի գրագիր (lontara) 1A20-1AAF. Հին այբուբենի սալիկներ (Tai Tham) 1B00-1B7F. Բալիներեն գիր 1B80-1 BBF՝ սունդաներեն գիր 1BC0-1BFF՝ բատակական գիր 1C00-1C4F՝ Լեպչա (ռոնգ) տառ 1C50-1C7F՝ Օլ Չիկի տառ 1CD0-1CFF՝ վեդական նիշ 1D00-1D7F՝ հնչյունական ընդլայնումներ՝ 1D80-1D հավելյալ ընդլայնումներ՝ 1D80-1D հավելյալ հեռախոս: համակցելի դիագրիտներ 1E00-1EFF. Ընդլայնված լատիներեն ընդլայնված 1F00-1FFF. Ընդլայնված հունարեն նիշերի հավաքածու 2000-206F. կետադրական նշաններ 2070-209F. սուպերգրիչներ և ենթագրեր 20A0-20CF. արժույթի խորհրդանիշներ 2000-206F: Հավանել նիշերը 2150-218F: Թվային ձևեր 2190-21FF: Սլաքներ 2200-22FF: Մաթեմատիկական օպերատորներ 2300-23FF. Տարբեր տեխնիկական նիշեր 2400-243F: Վերահսկիչ կոդի պատկերակներ 2440-260F: Շրջանակներ նկարելու նշաններ 2580-259F. Լրացման նշաններ 25A0-25FF. Երկրաչափական ձևեր 2600-26FF. Տարբեր նշաններ 27 00-27BF: Dingbats 27C0-27EF: Տարբեր մաթեմատիկական նշաններ-A 27F0-27FF: Տարբեր սլաքներ-A 2800-28FF: Բրայլ 2900-297F: Տարբեր նետեր-B 2980-2980-2980 Տարբեր սլաքներ: օպերատորներ 2B00-2BFF. Տարբեր նիշեր և սլաքներ 2C00-2C5F: գլագոլիտիկ 1AB0-1AFF. Համակցված դիակրիտիկ (ընդլայնում A) 1CC0-1CCF. Սունդանական նիշերի ընդլայնված հավաքածու A9E0-A9FF: Մյանմարի սկրիպտ:AaEite ընդլայնում BAA հավաքածու AB30-AB8F: Ընդլայնված լատիներեն-E AB30-AB6F: Warang-kshiti AB90-ABBF: Բերիան գրում է Zaghawa-ի համար 2C60-2C7F: Ընդլայնված լատիներեն-C 2C80-2CFF: Ղպտիական այբուբեն 2D00-2D2F: Լրացուցիչ վրացերեն 30 գրանշաններ: 2D7F. Tifinagh 2D80-2DDF. Եթովպական նիշը երկարաձգվել է 2DE0-2DFF. Կիրիլիցա ընդլայնված-A 2E00-2E7F: Լրացուցիչ նշաններԿետադրական նշան 2E80-2EFF՝ KJK-ի լրացուցիչ հիերոգլիֆ ստեղներ 2F00-2FDF՝ Kangxi բառարանի հիերոգլիֆային ստեղներ 2FF0-2FFF՝ հիերոգլիֆներ նկարագրող նիշեր 3000-303F՝ ​​CJK խորհրդանիշներ և կետադրական նշաններ 3000-303F՝ ​​CJK նշաններ և կետադրական նշաններ 3000-303F. 318F. Chamo համակցված Hangul 3190-319F. Նիշերը, որոնք օգտագործվում են Cambun 31A0-31BF. Ընդլայնված bopomofo նիշերի հավաքածու 31C0-31EF: CJK հատկանիշներ 31F0-31FF: Katakana հնչյունական ընդարձակումներ 3200-32KJ033CFF: Նշաններ 3400-4DBF՝ CJK Միասնական հիերոգլիֆներ (A Extension) 4DC0-4DFF. A640-A69F. կիրիլիցա ընդլայնված-B A6A0-A6FF. բամում գրություն A700-A71F. նիշերը թեքվում են բարձրությամբ A720-A7FF. լատիներեն ընդլայնված D A800-A82F. Siloti Nagri A830-A83F. հնդկական թվային նիշեր A840 A840 A8 smo Pagba Lama A880-A8DF: Saurashtra A8E0-A8FF: Devanagari ընդլայնված նիշերի հավաքածու A900-A92F: Kayah Lee A930-A95F: Rejang A960-A97F: Հանգուլ (ընդլայնում A) A980-A9DF55AA00se: (ընդլայնում A) AA80-AADF. Tai Viet գրագիր AB00-AB2F. Եթովպական գրագրի նիշերի հավաքածու (ընդլայնում A) ABC0-ABFF. Փոխնակ զույգերի մի մասը մասնավոր օգտագործման համար DC00-DFFF. Փոխնակ զույգերի ստորին մասը E000-F8FF. Անձնական օգտագործման տարածք F900-FAFF. Համատեղելի CJK նիշեր FB00-FB4F. Արաբական տառատեսակներ-A FE00-FE0F. Տառատեսակների ընտրիչներ FE10-FE1F. Ուղղահայաց ձևեր FE20-FE2F. Կիսատառերի համադրում FE30-FE4F. CJK համատեղելիության նախշեր FE50-FE6F. Փոքր չափի ընտրանքներ FE70-FE FF: արաբական տառատեսակներ-B FF00-FFEF. կիսալայնության և ամբողջ լայնության ձևեր FFF0-FFFF. Հատուկ նիշեր

  • Ի՞նչ է Յունիկոդը:

    Յունիկոդ(անգլ. Յունիկոդ) նիշերի կոդավորման համընդհանուր ստանդարտ է, որը թույլ է տալիս նիշեր տրամադրել աշխարհի բոլոր լեզուներին:

    Ի տարբերություն ASCII-ի, մեկ նիշը կոդավորված է երկու բայթով, ինչը հնարավորություն է տալիս օգտագործել 65 536 կերպարները դեմ 256 .

    Ինչպես գիտեք, մեկ բայթը ամբողջ թիվ է քերծվածքնախքան 255 ... Իր հերթին, բայտը բաղկացած է ութբիթեր, որոնք թվային արժեքները պահում են երկուական ձևով, որտեղ ընթացիկ բիթերի յուրաքանչյուր հաջորդ միավորը կրկնակի մեծ է նախորդ բիթից: Այսպիսով, երկու բայթ կարող է թվեր պահել քերծվածքնախքան 65 535 , որը թույլ է տալիս օգտագործել 65 536 նիշեր (զրո + 65 535 , զրոն նույնպես թիվ է, դա ոչինչ չէ)։

    Յունիկոդի նիշերը բաժանված են բաժինների: Առաջինը 128 կերպարները կրկնում են աղյուսակը ASCII.

    Կոդավորման ընտանիքը պատասխանատու է նիշերի ցուցադրման համար: Յունիկոդ (Յունիկոդի փոխակերպման ձևաչափ - UTF): Ամենահայտնի և լայնորեն օգտագործվող կոդավորումն է UTF-8.

  • Ինչպե՞ս օգտագործել աղյուսակը:

    Խորհրդանիշները ներկայացված են 16 կտոր յուրաքանչյուր տողում: Վերևից կարելի է տեսնել տասնվեցական թիվ-ից 0 նախքան 16 ... Ձախ կողմում անալոգային թվեր տասնվեցական ձևով 0 նախքան Ֆֆֆ.
    Ձախ կողմում գտնվող համարը միացնելով վերը նշված թվին, կարող եք պարզել նիշերի կոդը: Օրինակ՝ անգլերեն տառ Ֆգտնվում է գծի վրա 004 , սյունակում 6 : 004 + 6 = նիշերի կոդը 0046 .

    Այնուամենայնիվ, դուք կարող եք պարզապես սավառնել կոնկրետ բնույթՆիշերի կոդի համար տե՛ս աղյուսակը: Կամ սեղմեք խորհրդանիշի վրա՝ այն պատճենելու համար, կամ դրա կոդը ձևաչափերից մեկով:

    Որոնման դաշտում կարող եք մուտքագրել որոնման հիմնաբառեր, օրինակ՝ նետեր, արև, սիրտ: Որպես այլընտրանք, կարող եք նշել նիշերի կոդը ցանկացած ձևաչափով, օրինակ՝ 1123, 04BC, چ: Կամ ինքնին խորհրդանիշը, եթե ցանկանում եք իմանալ խորհրդանիշի կոդը:

    Որոնել ըստ հիմնաբառերներկայումս մշակման փուլում է, ուստի այն կարող է արդյունք չտալ: Բայց շատ հայտնի խորհրդանիշներ արդեն կարելի է գտնել:

Հավատում եք, թե ոչ, զննարկիչում կա պատկերի ձևաչափ: Այս ձևաչափը թույլ է տալիս բեռնել պատկերները նախքան դրանք անհրաժեշտ լինելը, ապահովում է պատկերի մատուցումը կանոնավոր կամ ցանցաթաղանթի էկրաններև թույլ է տալիս CSS ավելացնել պատկերներին: Լավ, դա ամբողջովին ճիշտ չէ: Սա կողմերի հարաբերակցություն չէ, թեև մնացած ամեն ինչ մնում է նույնը: Օգտագործելով այն՝ դուք կարող եք ստեղծել լուծաչափի անկախ պատկերակներ, որոնք բեռնելու համար ժամանակ չեն պահանջում և ոճավորվում են օգտագործելով CSS.

Ի՞նչ է Յունիկոդը:

Յունիկոդը տարբեր լեզուներից տառեր և կետադրական նշաններ մեկ էջում ճիշտ ցուցադրելու հնարավորություն է: Դա աներևակայելի օգտակար է. օգտատերերը կկարողանան շփվել ձեր կայքի հետ ամբողջ աշխարհում, և այն ցույց կտա, թե ինչ եք ուզում՝ դա կարող է լինել ֆրանսերեն շեշտադրումներով կամ Kanji:

Յունիկոդը շարունակում է զարգանալ. այժմ ակտուալ է 8.0 տարբերակը, որում կա ավելի քան 120 հազար նիշ (2014 թվականի սկզբին հրապարակված սկզբնական հոդվածում խոսքը 6.3 և 110 հազար նիշերի մասին էր):

Բացի տառերից և թվերից, Յունիկոդում կան նաև այլ նշաններ և պատկերակներ։ Վ վերջին տարբերակներըդրանք ներառում են էմոջիներ, որոնք դուք կարող եք տեսնել iOS մեսենջերում:

HTML էջերը ստեղծվում են Յունիկոդի նիշերի հաջորդականությունից և ցանցով ուղարկվելիս վերածվում են բայթերի: Ցանկացած լեզվի յուրաքանչյուր տառ և նիշ ունի իր ուրույն կոդը և կոդավորված է, երբ ֆայլը պահպանվում է:

UTF-8 կոդավորման համակարգը օգտագործելիս կարող եք ուղղակիորեն տեքստի մեջ տեղադրել Յունիկոդի նիշերը, բայց կարող եք նաև դրանք ավելացնել տեքստին՝ նշելով թվային խորհրդանշական հղում: Օրինակ, սա սրտի խորհրդանիշ է, և դուք կարող եք ցուցադրել այդ խորհրդանիշը՝ պարզապես նշագծմանը կոդ ավելացնելով:

Այս թվային հղումը կարող է նշվել կա՛մ տասնորդական, կա՛մ տասնորդական ձևաչափով: Տասնորդական ձևաչափը պահանջում է սկզբում ավելացնել x տառը, նշումը կտա նույն սիրտը () ինչպես նախորդ տարբերակը: (2665-ը 9829-ի տասնվեցական տարբերակն է):

Եթե ​​դուք ավելացնում եք Unicode նիշ՝ օգտագործելով CSS, ապա կարող եք օգտագործել միայն վեցանկյուն արժեքներ:

Ամենատարածված յունիկոդի նիշերից որոշները թվային կոդերի փոխարեն ունեն ավելի հիշվող տեքստային անուններ կամ հապավումներ, ինչպիսիք են ամպերսանդը (& - &): Նման նշանները կոչվում են մնեմոնիկա HTML-ում, ամբողջական ցանկը հասանելի է Վիքիպեդիայում։

Ինչու՞ պետք է օգտագործեք Յունիկոդ:

Լավ հարց է, ահա մի քանի պատճառ.

  1. Տարբեր լեզուներից ճիշտ նիշեր օգտագործելու համար:
  2. Սրբապատկերները փոխարինելու համար:
  3. @ font-face-ի միջոցով միացված պատկերակները փոխարինելու համար:
  4. CSS դասեր սահմանելու համար

Վավեր կերպարներ

Պատճառներից առաջինը լրացուցիչ գործողություն չի պահանջում։ Եթե ​​HTML-ը պահվում է UTF-8 ձևաչափով, և դրա կոդավորումը փոխանցվում է ցանցով որպես UTF-8, ամեն ինչ պետք է աշխատի այնպես, ինչպես պետք է:

Պետք է. Ցավոք, ոչ բոլոր բրաուզերներն ու սարքերն են ապահովում Յունիկոդի բոլոր նիշերը նույն կերպ (ավելի ճիշտ՝ ոչ բոլոր տառատեսակներն են ապահովում նիշերի ամբողջական հավաքածուն): Օրինակ, վերջերս ավելացված էմոջի նիշերն ամենուր չեն աջակցվում:

UTF-8-ի աջակցության համար HTML5-ում ավելացրեք (եթե դուք մուտք չունեք սերվերի կարգավորումներ, դուք նույնպես պետք է ավելացնեք ): Հին վարդապետությունը օգտագործում է ( ).

Սրբապատկերներ

Unicode-ի օգտագործման երկրորդ պատճառը ներկայությունն է մեծ թվովօգտակար խորհրդանիշներ, որոնք կարող են օգտագործվել որպես պատկերակներ: Օրինակ՝ ≡ և.

Նրանց ակնհայտ պլյուսն այն է, որ ձեզ հարկավոր չէ լրացուցիչ ֆայլերդրանք էջին ավելացնելու համար, ինչը նշանակում է, որ ձեր կայքը ավելի արագ կլինի: Կարող եք նաև փոխել դրանց գույնը կամ ավելացնել ստվեր՝ օգտագործելով CSS: Եվ ավելացնելով անցումներ (css transition), դուք կարող եք սահուն կերպով փոխել պատկերակի գույնը, երբ սավառնում եք դրա վրա՝ առանց որևէ լրացուցիչ պատկերի:

Ենթադրենք, ես ուզում եմ իմ էջում ներառել աստղային վարկանիշի ցուցիչ։ Ես կարող եմ դա անել այսպես.

★ ★ ★ ☆ ☆

Դուք ստանում եք հետևյալ արդյունքը.

Բայց եթե ձեր բախտը չբերի, կտեսնեք այսպիսի բան.

Նույն վարկանիշը BlackBerry 9000-ում

Դա տեղի է ունենում, եթե օգտագործված նիշերը զննարկիչի կամ սարքի տառատեսակում չեն (բարեբախտաբար, այս աստղանիշները հիանալի աջակցվում են և հին են BlackBerry հեռախոսներայստեղ միակ բացառությունն են):

Եթե ​​Unicode նիշ չկա, ապա դրա տեղում կարող են լինել տարբեր նիշեր՝ դատարկ քառակուսուց (□) մինչև հարցական նշանով ադամանդ (�):

Ինչպե՞ս գտնել Յունիկոդի կերպար, որը կարող է աշխատել ձեր դիզայնի համար: Դուք կարող եք որոնել այն Unicodinator-ի նման կայքում՝ դիտելով առկա նիշերը, բայց կա նաև լավագույն միջոցը... - այս հիանալի կայքը թույլ է տալիս նկարել այն պատկերակը, որը փնտրում եք, այնուհետև առաջարկում է ձեզ նմանատիպ Յունիկոդ նիշերի ցանկ:

Օգտագործելով Unicode @ տառատեսակի դեմքի պատկերակներով

Եթե ​​դուք օգտագործում եք պատկերակներ, որոնք կապվում են արտաքին տառատեսակի հետ @ font-face-ի միջոցով, Unicode-ի նիշերը կարող են օգտագործվել որպես փոխարինող: Այս կերպ դուք կարող եք ցուցադրել Unicode-ի համանման նիշ այն սարքերում կամ բրաուզերներում, որտեղ @ font-face-ը չի աջակցվում.

Ձախ կողմում Chrome-ի Font Awesome պատկերակներն են, իսկ աջ կողմում՝ Opera Mini-ում դրանց Unicode փոխարինումները:

@ տառատեսակի դեմքի համապատասխանող գործիքներից շատերը օգտագործում են Unicode նիշերի մի շարք մասնավոր օգտագործման տարածքից: Այս մոտեցման խնդիրն այն է, որ եթե @ font-face-ը չի աջակցվում, նիշերի կոդերն առանց որևէ նշանակության փոխանցվում են օգտվողին:

Հիանալի է @ font-face-ով պատկերակների հավաքածուներ ստեղծելու համար և թույլ է տալիս ընտրել համապատասխան Յունիկոդ նիշ՝ որպես պատկերակի հիմք:

Բայց զգուշացրե՛ք. որոշ բրաուզերներ և սարքեր չեն սիրում Unicode-ի անհատական ​​նիշերը, երբ օգտագործվում են @ font-face-ի հետ: Իմաստ է ստուգել Unicode-ի նիշերի աջակցությունը Unify-ի միջոցով. այս հավելվածը կօգնի ձեզ որոշել, թե որքանով է անվտանգ @ font-face պատկերակաշարում նիշ օգտագործելը:

Unicode նիշերի աջակցություն

Unicode-ի նիշերը որպես փոխարինող օգտագործելու հիմնական խնդիրը էկրանի ընթերցողների վատ աջակցությունն է (կրկին, դրա մասին որոշ տեղեկություններ կարելի է գտնել Unify-ում), ուստի կարևոր է ուշադիր ընտրել ձեր օգտագործած նիշերը:

Եթե ​​ձեր պատկերակը պարզապես դեկորատիվ տարր է էկրանի ընթերցողի կողմից ընթեռնելի տեքստային պիտակի կողքին, ապա ձեզ շատ անհանգստանալու կարիք չկա: Բայց եթե պատկերակը ինքնուրույն է, արժե ավելացնել թաքնված տեքստային պիտակ՝ էկրանի ընթերցող օգտատերերին օգնելու համար: Նույնիսկ եթե Unicode-ի նիշը կարդացվում է էկրանի ընթերցողի կողմից, հավանականություն կա, որ այն շատ տարբերվի իր նախատեսված նպատակից: Օրինակ, ≡ (≡) որպես համբուրգերի պատկերակը VoiceOver-ի կողմից կկարդա որպես «նույնական» iOS-ում:

Յունիկոդ CSS դասերի անուններում

Այն, որ Յունիկոդը կարող է օգտագործվել դասերի անուններում և ոճաթերթերում, հայտնի է 2007 թվականից։ Հենց այդ ժամանակ Ջոնաթան Սնուկը գրեց Unicode-ի նիշերի օգտագործման մասին օգնական դասարաններում կլորացված անկյուններ մուտքագրելիս: Այս գաղափարը մեծ տարածում չի ստացել, բայց արժե իմանալ Unicode-ի օգտագործման հնարավորության մասին դասերի անուններում (հատուկ նիշ կամ կիրիլիցա):

Տառատեսակի ընտրություն

Մի քանի տառատեսակներ աջակցում են Յունիկոդի նիշերի ամբողջական փաթեթին, այնպես որ տառատեսակ ընտրելիս համոզվեք, որ ստուգեք ձեր ուզած նիշերը:

Շատ սրբապատկերներ Segoe UI Symbol-ում կամ Arial Unicode MS-ում: Այս տառատեսակները հասանելի են ինչպես համակարգչի, այնպես էլ Mac-ի վրա; Լյուսիդա Գրանդեն ունի նաև Յունիկոդի նիշերի բավականին մեծ քանակություն: Դուք կարող եք ավելացնել այս տառատեսակները տառատեսակների ընտանիքի հայտարարագրում, որպեսզի համոզվեք, որ Unicode-ի նիշերի առավելագույն քանակը հասանելի է այս տառատեսակները տեղադրած օգտվողներին:

Unicode-ի աջակցության որոշում

Հիանալի կլիներ, եթե կարողանայիք ստուգել Unicode-ի որոշակի նիշի առկայությունը, բայց դա անելու երաշխավորված միջոց չկա:

Unicode-ի նիշերը կարող են արդյունավետ լինել, եթե աջակցվեն: Օրինակ, թեմայի տողում գտնվող էմոջին այն առանձնանում է մնացածից փոստարկղ.

Եզրակացություն

Այս հոդվածը վերաբերում է միայն Յունիկոդի հիմունքներին: Հուսով եմ, որ այն օգտակար կլինի ձեզ օգնելու ավելի լավ հասկանալ Յունիկոդը և արդյունավետ օգտագործել այն:

Հղումների ցանկ

  • (Յունիկոդի վրա հիմնված @ font-face iconset գեներատոր)
  • Shape Catcher (Յունիկոդի նիշերի ճանաչման գործիք)
  • Unicodinator (Յունիկոդի նիշերի աղյուսակ)
  • Unify (ստուգեք բրաուզերներում Unicode նիշերի աջակցությունը)
  • Unitools (Յունիկոդի հետ աշխատելու գործիքների հավաքածու)