տուն Բազմամյա ծաղիկներ Նիշերի վերծանում ռուսերեն. Ի՞նչ է ANSI կոդավորումը և ինչո՞վ է այն ուտվում: Սիմվոլների սխալ ցուցադրում

Նիշերի վերծանում ռուսերեն. Ի՞նչ է ANSI կոդավորումը և ինչո՞վ է այն ուտվում: Սիմվոլների սխալ ցուցադրում

Կայքի կոդավորումը (Encoding) թվի համապատասխանությունն է նիշերին (թվեր, տառեր, նշաններ և այլ հատուկ նիշեր): Ամենատարածված կոդավորումները համարվում են ASCII Unicode UTF-8-ի և Windows-1251-ի հետ միասին: Բովանդակության մեջ հատուկ մետա թեգը պատասխանատու է կոդավորման համար. որը սահմանում է էջերի հատուկ տեսակի կոդ: Այս դեպքում դա UTF-8 Unicode է:

Պարզ բառերով ասած՝ սրանք ստանդարտ նշաններ և թվեր են, որոնք համապատասխանում են գրավոր տառերի, թվերի, նշանների և այլ տարրերի որոշակի տիպի: Ամենից հաճախ կայքը օգտագործում է մեկ տեսակի կոդավորում, սակայն կան բացառություններ, երբ կարող են միանգամից մի քանի կոդավորումներ տեղադրվել: Այնուամենայնիվ, դա կարող է հանգեցնել ամբողջ վեբ ռեսուրսի սխալ ցուցադրման: Շատ կայքեր օգտագործում են կոդավորման ստանդարտը՝ UTF-8, քանի որ այս տեսակի կոդն աջակցվում է շատ հայտնի բրաուզերների, որոնման համակարգերի, սերվերների և այլ հարթակների կողմից: Շատ հաճախ լինում են իրավիճակներ, երբ կայքում նշված կոդավորումը չի համընկնում սերվերում տեղադրված կոդավորման հետ: Այս երեւույթի հիմնական պատճառն այն է, որ պրովայդերը չի աջակցում տրամադրված կոդավորման տեսակը, ինչի արդյունքում նա ուղարկում է «իրենը», ինչը փաստացի հանգեցնում է տեղեկատվության սխալ ցուցադրման։ Կոդավորումը աղյուսակ է, որը նկարագրում է որևէ համապատասխանություն կոնկրետ նիշի և թվի միջև: Յուրաքանչյուր սիմվոլ, որը տեսանելի է կայքում, համակարգչի համար ներկայացնում է ընդամենը բիթերի մի շարք (զրոների և այլ միավորների հավաքածու):

Կայքի կոդավորման տեսակները

Ինտերնետ աշխարհում կան մի քանի տեսակի կոդավորումներ.

  • ASCII-ն առաջին կոդավորումն է, որն ընդունվել է Համաշխարհային ստանդարտների ամերիկյան ինստիտուտի կողմից: Կոդավորման համար օգտագործվել է ընդամենը 7 բիթ, որտեղ առաջին անգամ տեղադրվում են 128 արժեքներ անգլերեն այբուբենը, ինչպես նաև բոլոր թվերը, նշանները և նշանները: Այս կոդավորումը համընդհանուր չէ և առավել հաճախ օգտագործվում էր անգլալեզու կայքերում:
  • Կիրիլիկան իսկապես կենցաղային տարբերակ է: Կոդավորումն օգտագործել է հիմնական կոդերի աղյուսակի երկրորդ մասը, ավելի ճիշտ՝ 129-ից մինչև 256 նիշերը: Այն օգտագործվում է ռուսալեզու կայքերում և բլոգներում:
  • 1250-1258 կոդավորումները (MS Windows և Windows համակարգեր) ստանդարտ 8-բիթանոց կոդավորումներ են, որոնք հայտնվել են հայտնի Microsoft Windows օպերացիոն համակարգի թողարկումից անմիջապես հետո: 1250-ից մինչև 1258 թվերն ուղղված են կոդավորման կողմից օգտագործվող լեզվին: 1250-ը կենտրոնական Եվրոպայի լեզուներն են, իսկ 1251-ը՝ կիրիլյան այբուբենի համար:
  • KOI8 - նշանակում է 8-բիթանոց տեղեկատվության փոխանակման կոդը: Սովորաբար, ռուսերեն կիրիլիցայի ստանդարտները օգտագործվում են Unix համակարգերում և նմանատիպ համակարգերում, որտեղ կիրառվում են KOI-7, KOI8-R և KOI8-U ստանդարտները:
  • Յունիկոդը (բնօրինակ անվանումը՝ Յունիկոդ) նիշերի կոդավորման հայտնի ստանդարտ է, որը թույլ է տալիս նիշերը նկարագրել բառացիորեն աշխարհի բոլոր լեզուներով։ Հաճախ կոչվում է «U + xxxx», որտեղ «xxxx»-ը վեցանկյուն արժեքներ են: Այս կոդավորման ամենատարածված ընտանիքը համարվում է UTF (Unicode-Transformation Format), այսինքն՝ UTF-8, 16 և 32:

Յուրաքանչյուր անհատական ​​դիտում կարող է օգտագործվել անմիջապես ցանկացած կայքում:

Ունիվերսալ և հանրաճանաչ կոդավորումներ

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

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

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

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

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

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

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

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

Բայց փաստն այն է, որ տեղեկատվության մեկ բայթի օգնությամբ հնարավոր է կոդավորել ոչ թե 128, այլ մինչև 256 տարբեր արժեքներ (ութի հզորության երկուսը հավասար է 256-ի), հետևաբար, Asuka-ի հիմնական տարբերակից հետո: , հայտնվեց մի ամբողջ շարք ընդլայնված 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%-ով ճիշտ կհասկանա ներկայումս օգտագործվող ցանկացած բրաուզերի կողմից:

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

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

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

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

Ավելի ուշ ASCIIընդլայնվեց (սկզբում այն ​​չէր օգտագործում բոլոր 8 բիթերը), ուստի հնարավոր դարձավ օգտագործել ոչ թե 128, այլ 256 (2-ից մինչև 8-րդ աստիճան) տարբեր նիշ, որոնք կարող են կոդավորվել մեկ բայթ տեղեկատվության մեջ։
Այս բարելավումը հնարավորություն տվեց ավելացնել կոդավորմանը ASCIIտարբեր երկրների ազգային լեզուների խորհրդանիշները, բացի արդեն գոյություն ունեցող լատինական այբուբենից:
Ընդլայնված կոդավորման ընտրանքներ ASCIIայնքան շատ են՝ պայմանավորված այն հանգամանքով, որ աշխարհում նույնպես շատ լեզուներ կան: Կարծում եմ, որ ձեզնից շատերը լսել են այնպիսի կոդավորման մասին, ինչպիսին է KOI8 (Տեղեկատվության փոխանակման կոդ, 8 բիթ), սա նաև ընդլայնված կոդավորում է: ASCII... KOI8-ը ներառում էր թվեր, լատինական և ռուսերեն այբուբենի տառեր, ինչպես նաև կետադրական նշաններ, հատուկ նիշեր և կեղծ գրաֆիկա:

ISO կոդավորում

Ստանդարտների միջազգային կազմակերպությունը ստեղծել է մի շարք կոդավորումներ տարբեր այբուբենների / լեզուների համար:

ISO 8859 սերիայի կոդավորումներ

Կոդավորում Նկարագրություն
ISO 8859-1 (լատիներեն-1) Ընդլայնված լատիներեն, ներառյալ արևմտաեվրոպական լեզուներից շատերի նիշերը (անգլերեն, դանիերեն, իռլանդերեն, իսլանդերեն, իսպաներեն, իտալերեն, գերմաներեն, նորվեգերեն, պորտուգալերեն, ռոմանշերեն, ֆարերերեն, շվեդերեն, շոտլանդերեն (գաելերեն) և մասամբ հոլանդերեն, ֆիններեն, ֆրանսերեն), ինչպես նաև որոշ արևելաեվրոպական (ալբաներեն) և աֆրիկյան լեզուներ (աֆրիկյան, սուահիլի): Լատինական 1-ում բացակայում է եվրո նշանը և մեծատառ Ÿ: Այս կոդային էջը համարվում է HTML փաստաթղթերի և էլփոստի հաղորդագրությունների լռելյայն կոդավորումը: Նաև այս կոդային էջը համապատասխանում է Յունիկոդի առաջին 256 նիշերին:
ISO 8859-2 (լատիներեն-2) Ընդլայնված լատիներեն, ներառյալ Կենտրոնական Եվրոպայի և Արևելյան Եվրոպայի լեզուների խորհրդանիշները (բոսնիերեն, հունգարերեն, լեհերեն, սլովակերեն, սլովեներեն, խորվաթերեն, չեխերեն): Latin-2-ը, ինչպես Latin-1-ը, չունի եվրոյի նշանը:
ISO 8859-3 (լատիներեն-3) Ընդլայնված լատիներեն, ներառյալ հարավային եվրոպական լեզուների (մալթերեն, թուրքերեն և էսպերանտո) նիշերը:
ISO 8859-4 (լատիներեն-4) Ընդլայնված լատիներեն, ներառյալ հյուսիսեվրոպական լեզուների խորհրդանիշները (գրենլանդական, էստոներեն, լատվիերեն, լիտվերեն և սամի լեզուներ):
ISO 8859-5 (լատիներեն / կիրիլիցա) Կիրիլիցա, ներառյալ սլավոնական լեզուների խորհրդանիշները (բելառուսերեն, բուլղարերեն, մակեդոներեն, ռուսերեն, սերբերեն և մասամբ ուկրաիներեն):
ISO 8859-6 (լատիներեն / արաբերեն) Արաբերենում օգտագործվող խորհրդանիշներ. Արաբերեն գրագրի այլ լեզուներ չեն աջակցվում: ISO 8859-6 տեքստի ճիշտ ցուցադրումը պահանջում է աջակցություն երկկողմանի գրելու և համատեքստի նկատմամբ զգայուն նիշերի ձևերի համար:
ISO 8859-7 (լատիներեն / հունարեն) Ժամանակակից հունարեն լեզվի խորհրդանիշները. Այն կարող է օգտագործվել նաև հին հունարեն տեքստերը միապաղաղ ուղղագրությամբ գրելու համար:
ISO 8859-8 (լատիներեն / եբրայերեն) Ժամանակակից եբրայական խորհրդանիշներ. Այն օգտագործվում է երկու տարբերակով՝ նիշերի տրամաբանական հերթականությամբ (պահանջում է երկկողմանի աջակցություն) և նիշերի տեսողական կարգով։
ISO 8859-9 (լատիներեն-5) Լատինական-1-ի տարբերակ, որը հազվադեպ օգտագործվող իսլանդական գրանշանները փոխարինում է թուրքերենով: Օգտագործվում է թուրքերենի և քրդերենի համար։
ISO 8859-10 (լատիներեն-6) Լատինական-4 տարբերակ, ավելի հարմար սկանդինավյան լեզուների համար։
ISO 8859-11 (լատիներեն / թայերեն) Թայերեն լեզվի խորհրդանիշները.
ISO 8859-13 (լատիներեն-7) Լատինական-4 տարբերակ, ավելի հարմար բալթյան լեզուների համար։
ISO 8859-14 (լատիներեն-8) Ընդլայնված լատիներեն՝ ներառելով կելտական ​​լեզուների նիշերը, ինչպիսիք են շոտլանդերենը (գաելերենը) և բրետոնը:
ISO 8859-15 (լատիներեն-9) Լատինական-1-ի տարբերակ, որտեղ հազվադեպ օգտագործվող նիշերը փոխարինվում են ֆիններեն, ֆրանսերեն և էստոներեն ամբողջությամբ աջակցելու համար պահանջվող նիշերով: Բացի այդ, եվրոյի նշանը ավելացվել է Latin-9-ին։
ISO 8859-16 (լատիներեն-10) Ընդլայնված լատիներեն, ներառյալ հարավեվրոպական և արևելաեվրոպական նիշերը (ալբաներեն, հունգարերեն, իտալերեն, լեհերեն, ռումիներեն, սլովեներեն, խորվաթերեն), ինչպես նաև արևմտաեվրոպական որոշ լեզուներից (իռլանդերեն նոր ուղղագրությամբ, գերմաներեն, ֆիններեն, ֆրանսերեն): Ինչպես Latin-9-ի դեպքում, Եվրո նշանը ավելացվել է Latin-10-ին:

Անգլերեն և արևմտաեվրոպական այլ լեզուներով փաստաթղթերի համար կոդավորումը լայնորեն աջակցվում է ISO-8859-1.

HTML-ում ISO-8859-1լռելյայն կոդավորումն է (XHTML-ում և HTML5-ում կանխադրված կոդավորումը UTF-8 է):
ISO-8859-1-ից տարբեր էջի կոդավորում օգտագործելիս պետք է սա ներառել պիտակի մեջ .

HTML4-ի համար.

HTML5-ի համար՝

ANSI կոդավորման օրինակ է հայտնի Windows-1251.

Windows-1251բարենպաստորեն համեմատվում է այլ 8-բիթանոց կիրիլիցա կոդավորումների հետ (օրինակ՝ CP866 և ISO 8859-5)՝ սովորական տեքստի համար ռուսերեն տպագրության մեջ օգտագործվող գրեթե բոլոր նիշերի առկայությամբ (բացակայում է միայն շեշտադրման նշանը): Այն պարունակում է նաև այլ սլավոնական լեզուների բոլոր նշանները՝ ուկրաիներեն, բելառուսերեն, սերբերեն, մակեդոներեն և բուլղարերեն:
Ստորև բերված են կոդավորման նիշերի տասնորդական արժեքները Windows-1251.

Օգտագործեք հետևյալ շարահյուսությունը HTML փաստաթղթում աղյուսակի նշանները ցուցադրելու համար.

& + կոդը +;

Windows-1251 կոդավորում (CP1251)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .C

8.
Ђ
402
Ѓ
403

201 Ա
ѓ
453

201E

2026

2020

2021

20 AC

2030
Љ
409

2039
Њ
40 Ա
Ќ
40C
Ћ
40Բ
Џ
40F

9.
ђ
452

2018

2019

201C

201D

2022

2013
-
2014

2122
љ
459

203 Ա
њ
45 Ա
ќ
45C
ћ
45Բ
џ
45F

Ա.

A0
Ў
40E
ў
45E
Ј
408
¤
A4
Ґ
490
¦
A6
§
A7
Յո
401
©
A9
Є
404
«
ԱԲ
¬
AC
­
ՀԱՅՏԱՐԱՐՈՒԹՅՈՒՆ
®
ԱԷ
Ї
407

Բ.
°
B0
±
B1
І
406
і
456
ґ
491
µ
B5

B6
·
B7
ե
451

2116
є
454
»
ԲԲ
ј
458
Ѕ
405
ѕ
455
ї
457

Գ.
Ա
410
Բ
411
Վ
412
Գ
413
Դ
414
Ե
415
Ֆ
416
Զ
417
ԵՎ
418
Թ
419
TO
41Ա
Լ
41Բ
Մ
41C
Ն
41D
Օ
41E
Ն.Ս
41F

Դ.
Ռ
420
ՀԵՏ
421
Տ
422
Ունենալ
423
Ֆ
424
Ն.Ս
425
Գ
426
Հ
427
Ն.Ս
428
SCH
429
Բ
42Ա
Ն.Ս
42Բ
Բ
42C
Ն.Ս
42D
Ն.Ս
42E
ԵՍ ԵՄ
42F

Ե.
ա
430
բ
431
v
432
Գ
433
դ
434
ե
435
զ
436
ս
437
և
438
րդ
439
Դեպի
43Ա
լ
43Բ
մ
43C
n
43D
Օ
43E
Ն.Ս
43F

Ֆ.
Ռ
440
հետ
441
Տ
442
ժամը
443
զ
444
Ն.Ս
445
գ
446
հ
447
Ն.Ս
448
SCH
449
բ
44 Ա
Ն.Ս
44Բ
բ
44C
Ն.Ս
44D
Ն.Ս
44E
ես եմ
44F

UNICODE ստանդարտ կոդավորումներ

Unicode-ը (անգլերեն Unicode) նիշերի կոդավորման ստանդարտ է, որը թույլ է տալիս ներկայացնել աշխարհի գրեթե բոլոր սցենարների նիշերը և հատուկ նիշերը: Յունիկոդի նիշերը կոդավորված են որպես անստորագիր ամբողջ թվեր: Յունիկոդը համակարգչում նիշերը ներկայացնելու մի քանի ձև ունի՝ UTF-8, UTF-16 (UTF-16BE, UTF-16LE) և UTF-32 (UTF-32BE, UTF-32LE): (Անգլերեն Յունիկոդի փոխակերպման ձևաչափ - UTF):
UTF-8Ներկայումս տարածված կոդավորում է, որը լայն տարածում է գտել օպերացիոն համակարգերում և վեբ տարածքում: Unicode-ի 128-ից պակաս նիշերից կազմված տեքստը (տարածքային կոդերը U + 0000-ից U + 007F) պարունակում է հավաքման նիշերը ASCIIհամապատասխան ծածկագրերով։ Հաջորդը տարբեր գրերի նշանների, կետադրական նշանների և տեխնիկական նշանների տարածքներն են։ Կիրիլյան նիշերի ներքո հատկացվում են U + 0400-ից մինչև U + 052F, U + 2DE0-ից մինչև U + 2DFF, U + A640-ից մինչև U + A69F կոդերով նիշերի տարածքները:

Կոդավորում UTF-8ունիվերսալ է և տպավորիչ պահուստ ունի ապագայի համար: Սա դարձնում է այն ամենահարմար կոդավորումը ինտերնետում օգտագործելու համար:

Նախքան հարցին պատասխանելը, թե ինչ է իրենից ներկայացնում ANSI Windows կոդավորումը, նախ պատասխանենք մեկ այլ հարցի՝ «Ի՞նչ է կոդավորումն ընդհանրապես»։

Յուրաքանչյուր համակարգիչ, յուրաքանչյուր համակարգ օգտագործում է որոշակի խորհրդանիշների հավաքածու՝ կախված օգտագործողի օգտագործած լեզվից, նրա մասնագիտական ​​իրավասությունից և անձնական նախասիրություններից:

Կոդավորման ընդհանուր սահմանում

Այսպիսով, ռուսերենում տառերը նշելու համար օգտագործվում է 33 նիշ, անգլերենում՝ 26: Հաշվելու համար օգտագործվում է նաև 10 նիշ (0; 1; 2; 3; 4; 5; 6; 7; 8; 9) և որոշ հատուկ նիշ: , մինուս, տարածություն, կետ, տոկոս և այլն:

Այս նիշերից յուրաքանչյուրին տրվում է հաջորդական համար՝ օգտագործելով ծածկագրերի աղյուսակը: Օրինակ, «Ա» տառին կարելի է վերագրել թիվ 1; «Z»-ը 26 է և այլն։

Փաստորեն, նիշը որպես ամբողջ թիվ ներկայացնող թիվը համարվում է նիշերի կոդ, իսկ կոդավորումը, համապատասխանաբար, նման աղյուսակի նիշերի մի շարք է:

Կոդերի աղյուսակների հարուստ բազմազանություն

Այս պահին կան բավականին մեծ թվով կոդավորումներ և կոդերի աղյուսակներ, որոնք օգտագործվում են տարբեր մասնագետների կողմից. սրանք են ASCII-ը, որը մշակվել է 1963 թվականին Ամերիկայում և Windows-1251-ը, որը վերջերս հայտնի էր Microsoft-ի, KOI8-R-ի և Guobiao-ի շնորհիվ, և շատ ու շատ ուրիշներ, և նրանց ի հայտ գալու և թառամելու գործընթացը շարունակվում է մինչ օրս:

Այս հսկայական ցանկի թվում է, այսպես կոչված, ANSI կոդավորումը:

Փաստն այն է, որ մի ժամանակ Microsoft-ը ստեղծեց կոդային էջերի մի ամբողջ շարք.

Դրանք բոլորը միասին կոչվում են ANSI կոդավորման աղյուսակ կամ ANSI կոդային էջ:

Հետաքրքիր փաստ. կոդերի առաջին աղյուսակներից մեկը ASCII-ն էր, որը ստեղծվել է 1963 թվականին Ամերիկյան ազգային ստանդարտների ինստիտուտի կողմից, որը հապավում է ANSI:

Ի թիվս այլ բաների, այս կոդավորումը պարունակում է նաև չտպվող նիշեր, այսպես կոչված «Escape Sequences» կամ ESC, որոնք եզակի են բոլոր նիշերի աղյուսակների համար և հաճախ անհամատեղելի են միմյանց հետ: Այնուամենայնիվ, հմուտ օգտագործմամբ նրանք թույլ տվեցին թաքցնել և վերականգնել կուրսորը, տեղափոխել այն տեքստի մի դիրքից մյուսը, սահմանել ներդիրներ, ջնջել տերմինալի պատուհանի այն մասը, որտեղ դուք աշխատում էիք, փոխել տեքստի ձևաչափումը։ էկրանը և փոխեք գույնը (կամ նույնիսկ նկարեք և մատուցեք ձայնային ազդանշաններ): 1976-ին, ի դեպ, դա բավականին լավ օգնություն էր ծրագրավորողների համար։ Ի դեպ, տերմինալը մի սարք է, որն անհրաժեշտ է տեղեկատվության մուտքագրման և ելքի համար: Այդ վաղ օրերին դա համակարգչին (էլեկտրոնային համակարգիչ) միացված մոնիտոր ու ստեղնաշար էր։

Սիմվոլների սխալ ցուցադրում

Ցավոք, ապագայում նման համակարգը բազմաթիվ խափանումներ առաջացրեց համակարգերում՝ ցուցադրելով այսպես կոչված krakozyabry՝ ցանկալի բանաստեղծությունների, նորությունների հոսքերի կամ ձեր սիրած համակարգչային խաղերի նկարագրությունների փոխարեն։ - անիմաստ, անընթեռնելի նիշերի հավաքածուներ: Այս ամենուր տարածված սխալներն առաջացել են պարզապես մի կոդերի աղյուսակում կոդավորված նիշերը մյուսի հետ քարտեզագրելու փորձից:

Ամենից հաճախ մենք բախվում ենք ինտերնետում այս կոդավորման սխալ ընթերցման հետևանքներին մինչ այժմ, երբ մեր զննարկիչը, ինչ-ինչ պատճառներով, չի կարող ճշգրիտ որոշել, թե Windows - **** կոդավորումներից որն է այս պահին օգտագործվում, քանի որ ընդհանուր ANSI կոդավորման վեբ վարպետի նշումը կամ սկզբնապես սխալ կոդավորումը, օրինակ՝ 1252-ը 1521-ի փոխարեն: Ստորև ներկայացված է ճշգրիտ կոդավորման աղյուսակը:

Կիրիլյան ANSI կոդավորման աղյուսակ, Windows-1251

Ավելին, 1986 թվականին ANSI-ն զգալիորեն ընդլայնվեց՝ շնորհիվ Յան Դևիսի, ով գրել է The Draw փաթեթը, որը թույլ է տալիս ոչ միայն օգտագործել հիմնական, մեր տեսանկյունից, գործառույթները, այլև ամբողջությամբ (կամ գրեթե ամբողջությամբ) նկարել:

Ամփոփելով

Այսպիսով, դուք կարող եք տեսնել, որ ANSI կոդավորումը, ըստ էության, թեև բավականին վիճելի որոշում էր, բայց պահպանում է իր դիրքորոշումը։

Ժամանակի ընթացքում, էնտուզիաստների թեթև ձեռքով, հնագույն ANSI տերմինալը տեղափոխվեց նույնիսկ հեռախոսներ:

Նորություն կայքում

>

Ամենահայտնի