Derazalarda rus tilini kodlash. DISM Console Utility dasturidan foydalanish

Krakozyabri- qanday so'z juda qiziq? Bu so'z odatda rus foydalanuvchilari tomonidan dasturlarda yoki operatsion tizimda belgilarning noto'g'ri / noto'g'ri ko'rsatilishi (kodlanishi) uchun ishlatiladi.
Nega bunday bo'ladi? Siz aniq javob topa olmaysiz. Bu bizning "sevimli" viruslarimizning hiyla -nayranglari bilan bog'liq bo'lishi mumkin, bu Windows operatsion tizimining noto'g'ri ishlashiga bog'liq bo'lishi mumkin (masalan, quvvat o'chirilgan va kompyuter o'chirilgan), dastur boshqasi bilan ziddiyat yaratgan bo'lishi mumkin. OS va hamma narsa "uchib ketdi". Umuman olganda, ko'p sabablar bo'lishi mumkin, lekin eng qiziqarlisi "Bu shunday oldi va o'zini shunday sindirdi".
Biz maqolani o'qib chiqdik va dasturlarda va Windows operatsion tizimida kodlash bilan bog'liq muammoni qanday hal qilishni bilib oldik, chunki bu sodir bo'ldi.

Kim hali ham nima demoqchi ekanimni tushunmaydi, mana bir nechtasi:


Aytgancha, men ham bu vaziyatga bir marta duch kelganman va hali ham mening ish stolimda uni hal qilishga yordam beradigan fayl bor. Shuning uchun men ushbu maqolani yozishga qaror qildim.

Windows-da kodlashni (shriftni) ko'rsatish uchun bir nechta "narsalar" mas'uldir - til, ro'yxatga olish kitobi va OTning o'zi fayllari. Endi biz ularni alohida -alohida tekshirib chiqamiz va nuqta bo'yicha ko'rsatamiz.

Dasturda yoki Windowsda ruscha (ruscha harflar) o'rniga krakozyabryni qanday olib tashlash va tuzatish mumkin.

1. Tekshirish tilni o'rnatish Unicode -ni qo'llab -quvvatlamaydigan dasturlar uchun. Balki u adashgan.

Shunday qilib, yo'l bo'ylab boring: Boshqarish paneli - Mintaqaviy va til parametrlari - Kengaytirilgan yorlig'i
U erda biz rus tilini qidirmoqdamiz.


Windows XP -da, bunga qo'shimcha ravishda, ro'yxat pastda joylashgan " Kod sahifalari konvertatsiya jadvallari "va u 20880 raqami bilan qatorni o'z ichiga oladi.

6. Oxirgi nuqta, unda men sizga hamma narsani tuzatishga yordam bergan faylni beraman va shuning uchun uni esdalik sifatida qoldirdim. Mana arxiv:

Ichida ikkita fayl bor: krakozbroff.cmd va krakozbroff.reg

Ularning printsipi bir xil - ierogliflarni, kvadratlarni, savollarni yoki har tomonlama tuzatish undov belgilari dasturlarda va Windows operatsion tizimida (oddiy odamlarda) krakozyabri). Men birinchisini ishlatdim va bu menga yordam berdi.

Va nihoyat, bir nechta maslahatlar:
1) Agar siz ro'yxatga olish kitobi bilan ishlayotgan bo'lsangiz, zaxira nusxasini yaratishni unutmang ( zaxira) agar biror narsa noto'g'ri bo'lsa.
2) Har bir banddan keyin 1 -bandni tekshirish maqsadga muvofiqdir.

Hammasi shu. Endi siz dasturda yoki Windows -da Krakozyabralarni (kvadratchalar, ierogliflar, undov va savol belgilari) olib tashlash / tuzatishni qanday tuzatishni bilasiz.

Salom aziz blog o'quvchilari. Bugun biz siz bilan krakozemberlar saytdan va dasturlardan qayerdan kelgani, qanday matnli kodlashlar bor va ulardan qaysi birini ishlatish kerakligi haqida gaplashamiz. Ularning rivojlanish tarixini batafsil ko'rib chiqing, asosiy ASCII, shuningdek uning kengaytirilgan CP866, KOI8-R, Windows 1251 versiyalaridan boshlab va UTF 16 va 8 Unicode konsortsiumining zamonaviy kodlashlari bilan tugaydi.

Ba'zilarga bu ma'lumot ortiqcha bo'lib tuyulishi mumkin, lekin siz krakozabrlarga (o'qiladigan belgilar to'plami emas) qancha savollar berayotganimni bilasiz. Endi men hammaga ushbu maqola matniga havola qilish va o'z jumboqlarimni mustaqil topish imkoniyatiga ega bo'laman. Xo'sh, ma'lumotni o'zlashtirishga tayyor bo'ling va voqeani kuzatishga harakat qiling.

ASCII - lotin alifbosi uchun asosiy matn kodlash

Matnli kodlashni ishlab chiqish IT -sanoati shakllanishi bilan bir vaqtda ro'y berdi va shu vaqt mobaynida ular juda ko'p o'zgarishlarga duch kelishdi. Tarixiy jihatdan hammasi EBCDIC bilan boshlangan, bu rus talaffuzida euphonious emas edi, bu lotin alifbosi harflarini, arab raqamlarini va tinish belgilarini nazorat belgilari bilan kodlash imkonini berdi.

Ammo baribir, zamonaviy matn kodlarini ishlab chiqishning boshlanish nuqtasini mashhur deb hisoblash kerak ASCII(Ma'lumot almashish uchun Amerika standart kodi, rus tilida odatda "aski" deb talaffuz qilinadi). U ingliz tilida so'zlashuvchi foydalanuvchilar tomonidan eng ko'p ishlatiladigan birinchi 128 belgini - arab raqamlari va tinish belgilarini tasvirlaydi.

Hatto ASCII da tasvirlangan ushbu 128 ta belgi qavslar, xesh-liniyalar, yulduzchalar va boshqalar kabi ba'zi xizmat belgilarini o'z ichiga oladi. Aslida, ularni o'zingiz ko'rishingiz mumkin:

Bu standart ASCII versiyasidagi 128 belgidan iborat bo'lib, boshqa har qanday kodlashda siz ularni albatta kutib olasiz va ular shu tartibda turadilar.

Ammo haqiqat shundaki, bir bayt ma'lumot yordamida 128 emas, balki 256 xil qiymatlarni kodlash mumkin (ikkita sakkizning kuchi 256 ga teng), shuning uchun Asuka-ning asosiy versiyasidan keyin , butun bir seriya paydo bo'ldi kengaytirilgan ASCII kodlashlari, unda 128 ta asosiy belgilarga qo'shimcha ravishda milliy kodlash belgilarini (masalan, rus) kodlash mumkin edi.

Bu erda, ehtimol, tavsifda ishlatiladigan raqamli tizimlar haqida bir oz ko'proq gapirish kerak. Birinchidan, barchangizga ma'lumki, kompyuter faqat ikkilik tizimdagi raqamlar bilan ishlaydi, ya'ni nollar va birlar bilan ishlaydi ("Boolean algebra", agar kimdir kollej yoki maktabga borgan bo'lsa). , ularning har biri 2 kuchga ega, noldan boshlanadi va ettinchisida ikkitagacha:

Bunday qurilishda faqat 256 ta nol va bitta kombinatsiya bo'lishi mumkinligini tushunish qiyin emas, ikkilik tizimdan raqamni o'nli kasrga aylantirish juda oddiy. Siz faqat yuqoridagi ikkita kuchning barcha kuchlarini qo'shishingiz kerak.

Bizning misolimizda, bu 1 (2 nolga teng) ortiqcha 8 (ikkitasi 3 kuchga), ortiqcha 32 (ikkitasi beshinchi kuchga), ortiqcha 64 (oltinchisiga), ortiqcha 128 (ettinchisiga). Hammasi bo'lib 233 dyuymni oladi kasr tizimi hisoblash. Ko'rib turganingizdek, hamma narsa juda oddiy.

Ammo agar siz ASCII belgilar bilan jadvalga diqqat bilan qarasangiz, ular o'n oltilik kodlashda ifodalanganligini ko'rasiz. Misol uchun, yulduzcha Asukadagi 2A o'n oltilik soniga mos keladi. O‘n oltilik sanoq sistemasida arab raqamlaridan tashqari A (o‘n degani) dan F (o‘n besh)gacha lotin harflari ham qo‘llanilishini bilsangiz kerak.

Xo'sh, uchun ikkilik sonni o'n oltilikka aylantirish quyidagi oddiy va intuitiv usulga murojaat qiling. Yuqoridagi skrinshotda ko'rsatilganidek, har bir bayt ma'lumot to'rt bitdan iborat ikki qismga bo'linadi. Bu. har bir yarim baytda faqat o'n oltita qiymatni (ikkidan to'rtinchi darajagacha) ikkilik tizimda kodlash mumkin, ularni o'n oltilik raqam sifatida osongina ifodalash mumkin.

Bundan tashqari, baytning chap yarmida darajani skrinshotda ko'rsatilgandek emas, balki noldan boshlab qayta hisoblash kerak bo'ladi. Natijada, oddiy hisob-kitoblar orqali biz E9 raqami skrinshotda kodlanganligini bilib olamiz. Umid qilamanki, mening fikrlashim va bu jumboqning echimi sizga tushunarli bo'lib chiqdi. Xo'sh, endi matn kodlashlari haqida gapirishni davom ettiramiz.

Psevdografiya bilan Asuka - CP866 va KOI8 -R kodlarining kengaytirilgan versiyalari

Shunday qilib, biz ASCII haqida gapira boshladik, bu barcha zamonaviy kodlashlarni (Windows 1251, Unicode, UTF 8) ishlab chiqish uchun boshlang'ich nuqta edi.

Dastlab u faqat lotin alifbosining 128 ta belgisini, arab raqamlarini va boshqa narsalarni o'z ichiga olgan edi, lekin kengaytirilgan versiyada bitta bayt ma'lumot bilan kodlanishi mumkin bo'lgan 256 ta qiymatdan foydalanish mumkin bo'ldi. Bular. endi Aski -ga o'z tilingizdagi harflarning belgilarini qo'shish mumkin.

Bu erda aniqlik kiritish uchun yana bir bor chetga chiqish kerak bo'ladi - Nima uchun bizga umuman kodlash kerak matnlar va nima uchun bu juda muhim. Kompyuter ekranidagi belgilar ikkita narsaga asoslanadi - har xil belgilarning vektorli shakllari (tasvirlari) va bu vektorli shakllar to'plamidan (shrift) chiqib ketish imkonini beruvchi kod. fayl) to'g'ri joyga kiritilishi kerak bo'lgan belgi.

Shubhasiz, shriftlarning o'zi vektor shakllari uchun javobgardir, lekin operatsion tizim va unda ishlatiladigan dasturlar kodlash uchun javobgardir. Bular. kompyuteringizdagi har qanday matn baytlar to'plami bo'ladi, ularning har biri aynan shu matnning bitta belgisini kodlaydi.

Ushbu matnni ekranda ko'rsatadigan dastur (matn muharriri, brauzer va boshqalar) kodni tahlil qilishda keyingi belgining kodlanishini o'qiydi va tegishli vektor shaklini qidiradi. kerakli fayl ushbu matn hujjatini ko'rsatish uchun ulangan shrift. Hamma narsa oddiy va noaniq.

Bu shuni anglatadiki, bizga kerak bo'lgan har qanday belgini kodlash uchun (masalan, milliy alifbodan), ikkita shart bajarilishi kerak - bu belgining vektor shakli ishlatilgan shriftda bo'lishi kerak va bu belgi kengaytirilgan ASCII kodlarida kodlanishi mumkin. bir bayt. Shuning uchun, bunday variantlarning to'liq to'plami mavjud. Faqat rus tilidagi belgilarni kodlash uchun kengaytirilgan Asukaning bir nechta navlari mavjud.

Masalan, dastlab paydo bo'lgan CP866, unda rus alifbosining belgilaridan foydalanish mumkin edi va bu ASCII ning kengaytirilgan versiyasi edi.

Bular. u yuqori qism Yuqoridagi skrinshotda keltirilgan Asuka-ning asosiy versiyasiga (128 lotincha harflar, raqamlar va boshqa har qanday axlat) to'liq mos keldi, ammo CP866 kodli jadvalning pastki qismida skrinshotda ko'rsatilgan shakl bor edi va ruxsat berilgan. yana 128 ta belgini kodlash uchun (ruscha harflar va har xil soxta grafikalar):

Ko'ryapsizmi, o'ng ustunda raqamlar 8 dan boshlanadi, tk. 0 dan 7 gacha raqamlar asosiy ASCII qismiga tegishli (birinchi ekran tasvirini ko'ring). Bu. CP866 rus tilidagi "M" harfi 9C kodiga ega bo'ladi (u 9 bilan mos keladigan chiziqning kesishmasida va o'n oltilik tizimda C raqami bo'lgan ustunda joylashgan), bu ma'lumotning bir baytida yozilishi mumkin va agar ruscha belgilar bilan mos shrift mavjud, bu harf muammosiz matnda ko'rsatiladi.

Bu miqdor qayerdan kelgan? CP866 da psevdografiya? Gap shundaki, ruscha matnni kodlash o'sha jo'shqin yillarda, hozirgi kabi grafik operatsion tizimlar tarqalmagan paytda ishlab chiqilgan. Va Dos va shunga o'xshash matnli operatsion tizimlarda soxta grafikalar qandaydir tarzda matnlar dizaynini diversifikatsiya qilishga imkon berdi, shuning uchun CP866 va uning boshqa tengdoshlari Asukaning kengaytirilgan versiyalari turkumiga mansub.

CP866 IBM tomonidan tarqatilgan, ammo bunga qo'shimcha ravishda ruscha belgilar uchun bir qator kodlashlar ishlab chiqilgan, masalan, bu turga (kengaytirilgan ASCII) tegishli bo'lishi mumkin. KOI8-R:

Uning ishlash printsipi biroz oldin tasvirlangan CP866 bilan bir xil bo'lib qoladi - matnning har bir belgisi bitta bayt bilan kodlangan. Skrinshotda KOI8-R stolining ikkinchi yarmi ko'rsatilgan birinchi yarmi ushbu maqoladagi birinchi skrinshotda ko'rsatilgan asosiy Asuka bilan to'liq mos keladi.

KOI8-R kodlash xususiyatlari orasida shuni ta'kidlash mumkinki, uning jadvalidagi rus harflari alifbo tartibida emas, masalan, CP866 da bo'lgani kabi.

Agar siz birinchi skrinshotga (barcha kengaytirilgan kodlashlarga kiritilgan asosiy qism) qarasangiz, KOI8-R rus tilidagi harflar lotin alifbosi undosh harflari bilan jadvalning bir xil kataklarida joylashganligini ko'rasiz. ular bilan jadvalning birinchi qismidan. Bu ruscha belgidan lotin belgisiga o'tishning qulayligi uchun qilingan, faqat bitta bit (ikkitasi ettinchi kuch yoki 128).

Windows 1251 - ASCII ning zamonaviy versiyasi va nima uchun krakozyabry chiqadi

Matnli kodlashni keyingi rivojlanishi grafik operatsion tizimlar ommalashib borayotgani va ularda soxta grafikadan foydalanish zarurati vaqt o'tishi bilan yo'qolganligi bilan bog'liq edi. Natijada, butun bir guruh paydo bo'ldi, ular mohiyatiga ko'ra hali ham Asukaning kengaytirilgan versiyalari edi (matnning bir belgisi faqat bir bayt ma'lumot bilan kodlangan), lekin allaqachon psevdografik belgilardan foydalanmasdan.

Ular Amerika Standartlar Instituti tomonidan ishlab chiqilgan ANSI kodlashlariga tegishli edi. Oddiy tilda, rus tilini qo'llab-quvvatlaydigan versiya uchun kirill alifbosining nomi ham ishlatilgan. Bunga misol xizmat qilishi mumkin.

U ilgari ishlatilgan CP866 va KOI8-R dan ijobiy farq qildi, chunki undagi psevdografik belgilar o'rnini rus tipografiyasining etishmayotgan belgilari (aksent belgisidan tashqari), shuningdek, slavyan tillarida ishlatiladigan belgilar egallagan. rus tiliga yaqin (Ukrain, Belarus va boshqalar) ):

Rus tilidagi kodlashlarning ko'pligi tufayli shrift ishlab chiqaruvchilari va ishlab chiqaruvchilari dasturiy ta'minot bosh og'rig'i doimiy ravishda paydo bo'ldi va biz, aziz o'quvchilar, tez-tez taniqli odamlardan chiqib ketdik krakozyabri matnda ishlatilgan versiya bilan chalkashlik yuzaga kelganda.

Ko'pincha ular xabar yuborish va qabul qilish paytida chiqib ketishgan elektron pochta, bu juda murakkab konversiya jadvallarini yaratishga olib keldi, bu esa aslida bu muammoni tubdan hal qila olmadi va ko'pincha yozishmalar foydalanuvchilari CP866, KOI8-R yoki Windows 1251 kabi rus kodlashlaridan foydalanganda mashhur krakozyabrlardan qochish uchun foydalandilar.

Aslida, rus tilidagi matn o'rniga ko'tarilgan krakozyabri ushbu tilning kodlashidan noto'g'ri foydalanish natijasi bo'lib, u kodlanganiga mos kelmaydi. matnli xabar dastlab

Masalan, agar biz Windows 1251 kodli jadval yordamida CP866 bilan kodlangan belgilarni ko'rsatishga harakat qilsak, o'sha krakozyabry (ma'nosiz belgilar to'plami) chiqadi va xabar matnini to'liq almashtiradi.

Shunga o'xshash holat, ko'pincha forumlarda yoki bloglarda, ruscha harflar bilan matn noto'g'ri ishlatilganda, saytda noto'g'ri kodlashda yoki noto'g'ri yozilganda saqlanadi. matn muharriri, bu yalang'och ko'zga ko'rinmaydigan kodga gag qo'shadi.

Oxir-oqibat, ko'pchilik juda ko'p kodlashlar va doimiy ravishda paydo bo'ladigan krakozyabralar bilan bunday vaziyatdan charchagan edi, yangi universal variatsiyani yaratish uchun zarur shart-sharoitlar paydo bo'ldi, u barcha mavjudlarini almashtiradi va nihoyat paydo bo'lishining asosiy muammosini hal qiladi. o'qib bo'lmaydigan matnlar. Bundan tashqari, xitoy kabi tillar muammosi mavjud edi, unda tilning belgilari 256 dan ortiq edi.

Unicode - UTF universal kodlashlari 8, 16 va 32

Janubi-Sharqiy Osiyo tillari guruhidagi bu minglab belgilarni ASCII ning kengaytirilgan versiyalarida belgilarni kodlash uchun ajratilgan ma'lumotlarning bir baytida tasvirlab bo'lmaydi. Natijada konsorsium chaqirildi Unicode(Unicode - Unicode Consortium) universal matn kodlashning paydo bo'lishidan manfaatdor bo'lgan ko'plab IT-sanoat rahbarlari (dasturiy ta'minot ishlab chiqaruvchi, apparat kodlovchi, shrift yaratuvchilar) hamkorligida.

Unicode konsortsiumi homiyligida chiqarilgan birinchi o'zgarish edi UTF 32... Kodlash nomidagi raqam bitta belgini kodlash uchun ishlatiladigan bitlar sonini bildiradi. 32 bit - bu 4 bayt ma'lumot bo'lib, ular yangi universal UTF kodlashda bitta belgini kodlash uchun kerak bo'ladi.

Natijada, ASCII kengaytirilgan versiyasida va UTF-32 da kodlangan matnli bir xil fayl, ikkinchi holda, hajmi (vazni) to'rt baravar ko'p bo'ladi. Bu yomon, lekin endi bizda ikkitadan o'ttiz soniyagacha bo'lgan belgilar sonini kodlash imkoniyati mavjud ( milliardlab belgilar, bu haqiqatan ham kerakli qiymatni katta marj bilan qoplaydi).

Ammo Evropa guruhi tillariga ega bo'lgan ko'plab mamlakatlar kodlashda bunday ko'p sonli belgilarni umuman ishlatishga hojat yo'q edi, ammo UTF-32 dan foydalanganda ular og'irlikni to'rt baravar oshirdi. matnli hujjatlar, va buning natijasida Internet-trafik hajmi va saqlangan ma'lumotlar miqdori oshadi. Bu juda ko'p va hech kim bunday chiqindilarni to'lashga qodir emas edi.

Unicode -ning rivojlanishi natijasida, UTF-16, bu juda muvaffaqiyatli bo'lib chiqdi, u sukut bo'yicha biz foydalanadigan barcha belgilar uchun asosiy maydon sifatida qabul qilindi. Bitta belgini kodlash uchun u ikki baytdan foydalanadi. Keling, bu ish qanday ko'rinishini ko'rib chiqaylik.

Windows operatsion tizimida siz "Ishga tushirish" - "Dasturlar" - "Aksessuarlar" - "Tizim asboblari" - "Symbol Map" yo'lidan borishingiz mumkin. Natijada, tizimingizda o'rnatilgan barcha shriftlarning vektor shakllari bilan jadval ochiladi. Agar tanlasangiz " Qo'shimcha parametrlar»Unicode belgilar to'plami, siz har bir shrift uchun unga kiritilgan belgilarning butun diapazonini alohida ko'rishingiz mumkin bo'ladi.

Aytgancha, ulardan birortasini bosish orqali siz uning ikki baytini ko'rishingiz mumkin UTF-16 kodi o'n oltilik o'nta raqamdan iborat:

UTF-16da 16 bitli nechta belgini kodlash mumkin? 65 536 (ikkitasi o'n oltining kuchiga teng) va aynan shu raqam Unicode -dagi asosiy maydon sifatida olingan. Bundan tashqari, u bilan va taxminan ikki million belgini kodlash usullari mavjud, ammo matnning bir million belgidan iborat kengaytirilgan maydoni bilan cheklangan.

Ammo hatto Unicode kodlashning ushbu muvaffaqiyatli versiyasi ham, masalan, faqat dasturlarni yozganlarga katta mamnuniyat keltirmadi. ingliz tili, chunki ASCII ning kengaytirilgan versiyasidan UTF-16 ga o'tgandan so'ng, hujjatlarning og'irligi ikki baravar ko'paydi (Aski bir belgi uchun bir bayt va UTF-16 da bir xil belgi uchun ikki bayt).

Unicode konsorsiumidagi hamma va hamma narsani qondirish uchun aynan shu narsani o'ylab topishga qaror qilindi. o'zgaruvchan uzunlikdagi kodlash... Ular buni UTF-8 deb atashdi. Nomidagi sakkizinchi raqamga qaramasdan, u haqiqatan ham o'zgaruvchan uzunlikka ega, ya'ni. matnning har bir belgisi uzunligi bir dan olti baytgacha bo'lgan ketma-ketlikda kodlanishi mumkin.

Amalda, UTF-8da faqat birdan to'rt baytgacha bo'lgan diapazon ishlatiladi, chunki to'rt baytli koddan tashqari, nazariy jihatdan hech narsani tasavvur qilib bo'lmaydi. Undagi barcha lotin belgilar eski ASCII-dagi kabi bir baytga kodlangan.

Shunisi e'tiborga loyiqki, faqat lotin alifbosini kodlashda, hatto Unicode-ni tushunmagan dasturlar ham UTF-8da kodlangan narsani o'qiydilar. Bular. Asuka-ning asosiy qismi hozirgina Unicode konsorsiumining ushbu miyasiga o'tdi.

UTF-8-dagi kirillcha belgilar ikki baytda, masalan, gruzincha belgilar esa uch baytda kodlangan. Unicode konsortsiumi UTF 16 va 8 ni yaratgandan so'ng asosiy muammoni hal qildi - endi bizda shriftlarda bitta kod maydoni mavjud... Va endi ularning ishlab chiqaruvchilari uni kuchli va imkoniyatlariga qarab matnli belgilarning vektorli shakllari bilan to'ldirishlari kerak. Endi hatto to'plamlarda.

Yuqoridagi "Belgilar jadvali" da siz turli xil shriftlar turli sonli belgilarni qo'llab-quvvatlashini ko'rishingiz mumkin. Unicode-ga boy ba'zi shriftlar juda og'ir bo'lishi mumkin. Ammo hozir ular har xil kodlash uchun yaratilgani bilan emas, balki shrift ishlab chiqaruvchisi bitta vektorli bo'shliqni oxirigacha ma'lum vektor shakllari bilan to'ldirgani yoki to'ldirmaganligi bilan farq qiladi.

Rus harflari o'rniga Krakozyabry - qanday tuzatish kerak

Keling, matn o'rniga krakozyabralar qanday paydo bo'lishini yoki boshqacha qilib aytganda, ruscha matn uchun to'g'ri kodlash qanday tanlanganligini ko'rib chiqaylik. Aslida, u aynan shu matnni yoki matn parchalari yordamida kodni yaratadigan yoki tahrirlaydigan dasturda o'rnatiladi.

Yaratish va tahrir qilish uchun matnli fayllar Men shaxsan men juda yaxshi ishlataman, menimcha. Biroq, u yana yuzlab yaxshi dasturlash va belgilash tillarining sintaksisini ta'kidlashi mumkin, shuningdek, plaginlar yordamida kengaytirish qobiliyatiga ega. O'qing batafsil ko'rib chiqish bu ajoyib dastur havola orqali.

V yuqori menyu Notepad ++ da "Kodlashlar" bandi mavjud bo'lib, u erda siz mavjud versiyani saytingizda sukut bo'yicha ishlatilgan versiyaga aylantira olasiz:

Joomla 1.5 va undan yuqori saytlarda, shuningdek WordPress -da blogda, yoriqlar paydo bo'lishining oldini olish uchun, variantni tanlang. UTF 8 BOMsiz... BOM prefiksi nima?

Gap shundaki, YUTF-16 kodlashi ishlab chiqilganida, negadir ular unga to'g'ridan-to'g'ri ketma-ketlikda (masalan, 0A15) va teskari (150A) belgilar kodini yozish qobiliyati kabi narsalarni biriktirishga qaror qilishdi. . Va dasturlar kodlarni qaysi ketma -ketlikda o'qish kerakligini tushunishi uchun va ixtiro qilingan BOM(Bayt buyurtma belgisi yoki boshqacha qilib aytganda, imzo), bu hujjatlarning boshida uchta qo'shimcha bayt qo'shilishi bilan ifodalangan.

UTF-8 kodlashda Unicode konsortsiumida hech qanday BOM ta'minlanmagan, shuning uchun imzo qo'shilishi (hujjatning boshiga bu eng mashhur uchta qo'shimcha bayt) ba'zi dasturlarning kodni o'qishiga to'sqinlik qiladi. Shuning uchun, fayllarni UTP ga saqlashda biz har doim BOMsiz (imzosiz) variantni tanlashimiz kerak. Shunday qilib, siz oldinga boring krakozyabrovni sudrab chiqishdan o'zingizni himoya qiling.

Shunisi e'tiborga loyiqki, Windows-dagi ba'zi dasturlar buni qila olmaydi (ular UOM-8da BOMsiz matnni saqlay olmaydi), masalan, mashhur Windows Notepad. U hujjatni UTF-8 da saqlaydi, lekin baribir imzoni boshiga (uchta qo'shimcha bayt) qo'yadi. Bundan tashqari, bu baytlar har doim bir xil bo'ladi - kodni to'g'ridan -to'g'ri ketma -ketlikda o'qing. Ammo serverlarda bu arzimas narsa tufayli muammo paydo bo'lishi mumkin - krakozyabri chiqadi.

Shunday qilib, hech qanday tarzda oddiy Windows bloknotidan foydalanmang saytingiz hujjatlarini tahrirlash uchun, agar siz krakozyabrovning ko'rinishini xohlamasangiz. Eng yaxshi va eng ko'p oddiy variant Men yuqorida aytib o'tilgan Notepad ++ muharririni ko'rib chiqaman, u deyarli kamchiliklarga ega emas va faqat afzalliklardan iborat.

Notepad ++ da kodlashni tanlashda siz matnni Unicode standartiga juda yaqin bo'lgan UCS-2 kodlashiga aylantira olasiz. Shuningdek, Notepad-da ANSI-da matnni kodlash mumkin bo'ladi, ya'ni. rus tiliga nisbatan biz uni Windows 1251 -ning tepasida tasvirlab beramiz. Bu ma'lumot qaerdan keladi?

Bu sizning reestringizda qayd etilgan operatsion tizim Windows - ANSI holatida qaysi kodlashni tanlash kerak, OEM uchun qaysi birini tanlash kerak (rus tilida bu CP866 bo'ladi). Agar siz kompyuteringizga boshqa standart tilni o'rnatgan bo'lsangiz, bu kodlashlar o'sha til uchun ANSI yoki OEM toifasidagi o'xshashlar bilan almashtiriladi.

Hujjatni Notepad ++ da kerakli kodlashda saqlaganingizdan yoki hujjatni tahrir qilish uchun saytdan ochganingizdan so'ng, uning nomini muharrirning o'ng pastki burchagida ko'rishingiz mumkin:

Krakozyabrovdan qochish uchun, yuqorida tavsiflangan harakatlarga qo'shimcha ravishda, uning sarlavhasida yozish foydali bo'ladi manba kodi saytning barcha sahifalarida ushbu kodlash haqida ma'lumot, shuning uchun serverda yoki mahalliy xostda hech qanday chalkashliklar bo'lmaydi.

Umuman olganda, Html -dan tashqari barcha gipermatnli belgilash tillarida matnni kodlashni bildiruvchi maxsus xml deklaratsiyasi ishlatiladi.

Kodni tahlil qilishni boshlashdan oldin, brauzer qaysi versiya ishlatilishini va bu tilning belgilar kodlari qanday talqin qilinishi kerakligini bilib oladi. Shunisi e'tiborga loyiqki, agar siz hujjatni standart unicode-da saqlasangiz, bu xml deklaratsiyasini o'tkazib yuborish mumkin (agar BOM bo'lmasa, UTF-8 kodlanishi, agar BOM bo'lsa-YUTF-16).

Html hujjati bo'lsa, kodlash ko'rsatiladi Meta element Bosh teglar ochilishi va yopilishi orasida yoziladi:

... ...

Ushbu yozuv qabul qilinganidan ancha farq qiladi, ammo ayyorlikda kiritilgan yangisiga to'liq mos keladi. Html standarti 5 va u hozirda foydalanilayotgan brauzer tomonidan 100% to'g'ri tushuniladi.

Nazariy jihatdan, Html hujjatining kodlanishini ko'rsatadigan Meta elementi yaxshiroq o'rnatilgan bo'lar edi hujjat sarlavhasida iloji boricha yuqori Shunday qilib, matnda birinchi ANSI -dan bo'lmagan birinchi belgi bilan uchrashish paytida (har doim to'g'ri va har xil variantda o'qiladi), brauzerda bu belgilar kodlarini qanday talqin qilish haqida ma'lumot bo'lishi kerak.

Omad sizga! Tez orada blog sayti sahifalarida ko'rishguncha

Sizni qiziqtirishi mumkin

URL manzillar nima, sayt uchun mutlaq va nisbiy havolalar o'rtasidagi farq nima
OpenServer - zamonaviy mahalliy server va WordPress-ni kompyuterga o'rnatish uchun undan qanday foydalanishga misol
Chmod nima, fayl va papkalarga qanday ruxsat berish (777, 755, 666) va buni PHP orqali qanday qilish kerak
Yandex saytida va Internet -do'konida qidirish

90-yillarning boshlarida, SSSR parchalanib, Rossiya chegaralari ochilganda, biz G'arb ishlab chiqarishining dasturiy mahsulotlarini olishni boshladik. Tabiiyki, ularning hammasi ingliz tilida so'zlashardi. Shu bilan birga, Internet rivojlana boshladi. Resurslar va dasturlarni ruslashtirish muammosi keskin paydo bo'ldi. Keyin ruscha kodlash Windows 1251 ixtiro qilindi.U slavyan alifbosining harflarini to'g'ri ko'rsatishga imkon beradi:

  • rus tili;
  • Ukraincha;
  • belarus;
  • Serb;
  • bolgar;
  • Makedon.

Ishlab chiqarishni Microsoft kompaniyasining Rossiya vakolatxonasi "Dialogue" va "Paragraph" kompaniyalari bilan birgalikda amalga oshirdi. O'z-o'zidan yozilgan ishlanmalar asos qilib olindi, ular 1990-91 yillarda Rossiyada sanoqli IT-ideologlar orasida muomalada bo'lgan.

Bugungi kunga kelib, belgilarni kodlashning yanada universal usuli - UTF -8 (Unicode) ishlab chiqilgan. Bu barcha dasturiy ta'minot va veb -resurslarning deyarli 90% ni tashkil qiladi. Windows 1251 1,6% ishlatiladi. (Internet texnologiyalari bo'yicha so'rovlar ma'lumotlari)

Saytni kodlash utf 8 yoki windows 1251?

Bu savolga javob berish uchun siz kodlash nima ekanligini va ular qanday farq qilishini bir oz tushunishingiz kerak. Matn ma'lumotlari, har qanday boshqa kabi, kompyuterda kodlangan shaklda saqlanadi. Buni raqamlar deb hisoblash biz uchun osonroq. Har bir belgi bir yoki bir nechta baytni egallashi mumkin. Windows 1251-bitta baytli kodlash, UTF-8-sakkiz baytli kodlash. Bu shuni anglatadiki, Windows 1251 da faqat 256 ta belgini kodlash mumkin.
Hamma narsa ikkilik hisoblash tizimiga to'g'ri kelganligi va bayt 8 bit (0 va 1) bo'lganligi sababli, kombinatsiyalarning maksimal soni 28 = 256 ni tashkil qiladi. Unicode juda ko'p sonli belgilarni ko'rsatishga imkon beradi va kattaroq o'lchamda bo'lishi mumkin. har biriga ajratiladi.

Shunday qilib, Unicode -ning afzalliklari quyidagilardan iborat:

  1. Saytning sarlavhasida siz ishlatiladigan kodlashni ko'rsatishingiz kerak. Aks holda, belgilar o'rniga "krakozyably" ko'rsatiladi. Va Unicode barcha brauzerlar uchun standartdir - ular uni sukut bo'yicha ushlab olishadi.
  2. Manba qaysi mamlakatda yuklanganidan qat'i nazar, sayt ramzlari o'zgarmaydi. Bu serverlarning geografik joylashuviga bog'liq emas, balki mijozning ish stantsiyasi dasturiy ta'minotining tiliga bog'liq. Shubhasiz, Portugaliya fuqarosi klaviatura va barcha dasturiy ta'minotni, shu jumladan operatsion tizimni o'z ona tilida ishlatadi. Uning kompyuterida Windows 1251 umuman yo'q, agar shunday bo'lsa, rus tilidagi saytlar ham to'g'ri ochilmaydi. Unicode, o'z navbatida, istalgan tildagi istalgan OTga "qattiq kodlangan".
  3. UTF-8 kodlash imkonini beradi katta miqdor belgilar. Yoqilgan bu lahza 8 baytdan 6 bayt foydalaniladi va ruscha belgilar ikki bayt bilan kodlangan.
    Shuning uchun faqat slavyan mamlakatlarida qo'llaniladigan yuqori malakali kodlashdan ko'ra, universal kodlashni qo'llash afzalroqdir.

Windows kodlash jadvali 1251

Dasturchilar va veb -saytlar ishlab chiqaruvchilari uchun ba'zida raqamlar raqamini bilish kerak bo'ladi. Buning uchun maxsus kodlash jadvallari qo'llaniladi. Quyida Windows 1251 uchun jadval mavjud.

Agar buyruq satrini kodlash buzilgan bo'lsa nima qilish kerak?

Ba'zida siz buyruq satrida ruscha o'rniga tushunarsiz belgilar ko'rsatiladigan vaziyatga duch kelishingiz mumkin. Bu buyruqni kodlashda muammo borligini anglatadi Windows satrlari 7. Nima uchun 7? Chunki 8-versiyadan boshlab UTF-8 ishlatiladi, ettitasida Windows 1251 ham bor.
Chcp 866 buyrug'i bir vaqtning o'zida muammoni hal qilishga yordam beradi. Joriy sessiya to'g'ri ishlaydi. Ammo xatoni keskin tuzatish uchun sizga registr kerak.


Kuningiz xayrli o'tsin!

Windows-1251-belgilar to'plami va kodlash, bu rus tilidagi barcha versiyalar uchun standart 8-bitli kodlash Microsoft Windows... Ushbu kodlash Sharqiy Evropa mamlakatlarida juda mashhur. Windows-1251 an'anaviy rus tipografiyasida ishlatilgan deyarli barcha belgilar mavjudligi bilan boshqa 8-bitli kirill yozuvlari (CP866, KOI8-R va ISO 8859-5) bilan yaxshi taqqoslanadi. Oddiy matn(faqat urg'u belgisi yo'q). Kirill alifbo tartibida.
Windows-1251 rus tiliga yaqin bo'lgan tillar uchun barcha belgilarni o'z ichiga oladi: belarus, ukrain, serb, makedon va bolgar.
Amalda, bu Windows-1251 kodlash UTF-8 tarqalishigacha Internetda ushlab turishi uchun etarli bo'ldi.

Windows-1251 belgilar kodi jadvali

DekabrOlti burchakliBelgi DekabrOlti burchakliBelgi
000 00 YO'Q 128 80 Ђ
001 01 SOH 129 81 Ѓ
002 02 STX 130 82
003 03 ETX 131 83 ѓ
004 04 EOT 132 84
005 05 ENQ 133 85
006 06 ACK 134 86
007 07 BEL 135 87
008 08 BS 136 88
009 09 TAB 137 89
010 0ALF 138 8AЉ
011 0BVT 139 8B
012 0CFF 140 8CЊ
013 0DCR 141 8DЌ
014 0ESO 142 8EЋ
015 0FSI 143 8FЏ
016 10 DLE 144 90 ђ
017 11 DC1 145 91
018 12 DC2 146 92
019 13 DC3 147 93
020 14 DC4 148 94
021 15 NAK 149 95
022 16 SYN 150 96
023 17 ETB 151 97
024 18 JON 152 98
025 19 EM 153 99
026 1AOBUNA 154 9Aљ
027 1BESC 155 9B
028 1CFS 156 9Cњ
029 1DGS 157 9Dќ
030 1ERs 158 9Eћ
031 1FBIZ 159 9Fџ
032 20 SP 160 A0
033 21 ! 161 A1 Ў
034 22 " 162 A2ў
035 23 # 163 A3Ћ
036 24 $ 164 A4¤
037 25 % 165 A5Ґ
038 26 & 166 A6¦
039 27 " 167 A7§
040 28 ( 168 A8Yo
041 29 ) 169 A9©
042 2A* 170 AAЄ
043 2B+ 171 AB«
044 2C, 172 AC¬
045 2D- 173 AD­
046 2E. 174 A.E®
047 2F/ 175 AFЇ
048 30 0 176 B0°
049 31 1 177 B1±
050 32 2 178 B2І
051 33 3 179 B3і
052 34 4 180 B4ґ
053 35 5 181 B5µ
054 36 6 182 B6
055 37 7 183 B7·
056 38 8 184 B8e
057 39 9 185 B9
058 3A: 186 BAє
059 3B; 187 BB»
060 3C< 188 Miloddan avvalgiј
061 3D= 189 BDЅ
062 3E> 190 BOLѕ
063 3F? 191 Bfї
064 40 @ 192 C0 A
065 41 A 193 C1 B
066 42 B 194 C2 V
067 43 C 195 C3 G
068 44 D 196 C4 D
069 45 E. 197 C5 E.
070 46 F 198 C6 F
071 47 G 199 C7 Z
072 48 H 200 C8 VA
073 49 I 201 C9 Th
074 4AJ 202 CA TO
075 4BK 203 CB L
076 4CL 204 CC M
077 4DM 205 CD H
078 4EN 206 Idoralar O
079 4FO 207 CF NS
080 50 P. 208 D0 R
081 51 Q 209 D1 BILAN
082 52 R 210 D2 T
083 53 S 211 D3 Bor
084 54 T 212 D4 F
085 55 U 213 D5 NS
086 56 V 214 D6 C
087 57 V 215 D7 H
088 58 X 216 D8 NS
089 59 Y 217 D9 SCH
090 5AZ 218 DA B
091 5B[ 219 JB NS
092 5C\ 220 DC B
093 5D] 221 DD NS
094 5E^ 222 DE NS
095 5F_ 223 DF MEN
096 60 ` 224 E0 a
097 61 a 225 E1 b
098 62 b 226 E2 v
099 63 v 227 E3 G
100 64 d 228 E4 d
101 65 e 229 E5 e
102 66 f 230 E6 f
103 67 g 231 E7 s
104 68 h 232 E8 va
105 69 i 233 E9 th
106 6Aj 234 EA Kimga
107 6Bk 235 EB l
108 6Cl 236 EC m
109 6Dm 237 ED n
110 6En 238 EE O
111 6Fo 239 EF NS
112 70 p 240 F0 R
113 71 q 241 F1 bilan
114 72 r 242 F2 T
115 73 s 243 F3 da
116 74 t 244 F4 f
117 75 u 245 F5 NS
118 76 v 246 F6 v
119 77 w 247 F7 h
120 78 x 248 F8 NS
121 79 y 249 F9 SCH
122 7Az 250 FA b
123 7B{ 251 FB NS
124 7C| 252 FC b
125 7D} 253 FD NS
126 7E~ 254 FE NS
127 7FDEL 255 FF Men

Maxsus (nazorat) belgilar tavsifi

Dastlab, ASCII boshqaruv belgilar (diapazon 00-31, plyus 127) teletayperlar, punchli lentali kirish va boshqalar kabi apparat qurilmalarini boshqarish uchun mo'ljallangan edi.
HTML hujjatlarida nazorat belgilaridan (gorizontal yorliqlar, chiziqlar tasmasi va tashish qaytishlaridan tashqari) foydalanilmaydi.

Maxsus (nazorat) belgilar

Kod Tavsif
NUL, 00Bo'sh, bo'sh
SOH, 01Sarlavhaning boshlanishi, sarlavhaning boshlanishi
STX, 02TeXt ning boshlanishi, matnning boshlanishi
ETX, 03TeXt oxiri, matn oxiri
EOT, 04Transmissiyaning oxiri, uzatishning oxiri
ENQ, 05So'ramoq. Tasdiqlashni so'rayman
ACK, 06E'tirof. tasdiqlayman
BEL, 07Qo'ng'iroq, qo'ng'iroq
BS, 08Backspace, bitta belgiga qayting
Tab, 09Tab, gorizontal yorliq
LF, 0ASatr tasmasi, chiziq tasmasi
Endi ko'pchilik dasturlash tillarida u \ n deb belgilanadi
VT, 0BVertikal yorliq, vertikal yorliq
FF, 0CForma tasmasi, sahifa tasmasi, yangi sahifa
CR, 0DVagonga qaytish
Endi ko'pchilik dasturlash tillarida u \ r sifatida belgilanadi
SO, 0EShift Out, bosib chiqarish qurilmasidagi siyoh lentasining rangini o'zgartiring
SI, 0FShift In, bosib chiqarish qurilmasidagi siyoh lentasining rangini orqaga qaytaring
DLE, 10Data Link Escape, kanalni ma'lumot uzatishga o'tkazish
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Qurilmani boshqarish, qurilmani boshqarish belgilari
NAK, 15Salbiy e'tirof, tan olmang
SIN, 16Sinxronizatsiya. Sinxronizatsiya belgisi
ETB, 17Matn blokining oxiri, matn blokining oxiri
JON, 18Bekor qilish, avval o'tganni bekor qilish
EM, 19O'rta oxiri, ma'lumot tashuvchining oxiri
SUB, 1AO'zgartirish Uzatish paytida qiymati yo'qolgan yoki buzilgan belgi o'rniga qo'yilgan
ESC, 1BQochish ketma -ketligi
FS, 1CFayl ajratuvchi, fayl ajratuvchi
GS, 1DGuruh ajratuvchi, guruh ajratuvchi
RS, 1EYozuvni ajratuvchi, yozuvni ajratuvchi
AQSh, 1FBirlik ajratuvchi, birlik ajratuvchi
DEL, 7FO'chirish, oxirgi belgini o'chirish.

Ma'lumki, Windows 10 operatsion tizim interfeysining lokalizatsiyasini o'zgartirishingiz mumkin bo'lgan til paketlarini o'rnatishni qo'llab-quvvatlaydi. Tizim tili tushunchasi bu bilan juda chambarchas bog'liq. Tizim tili til paketiga qo'shilgan til emas, balki tizimni o'rnatish paytida tanlangan tildir. Agar siz korporativ kompyuterda ishlayotgan bo'lsangiz, uning tili o'rnatish orqali o'zgartirilgan MUI -paketlar, siz tizimda dastlab qaysi til ishlatilganligini bilishni xohlashingiz mumkin.

Tizim tilini aniqlashning bir necha usullari mavjud.

Keling, ularni tartibda ko'rib chiqaylik.

DISM Console Utility dasturidan foydalanish

Administrator sifatida ishga tushirish buyruq qatori va unda bajaring dism buyrug'i/ onlayn / get-intl. Natijani bir necha soniya ichida oling.

Parametrga e'tibor bering "Standart foydalanuvchi interfeysi tili" ... Uning ma'nosi tizim tili bo'ladi.

PowerShell konsolidan foydalanish

Konsolni administrator sifatida ishga tushiring va buyruqni bajaring :: O'rnatilgan madaniyat .

Parametr qiymati Ko'rsatiladigan ism tizim tiliga ishora qiladi. Shuningdek, parametrga e'tibor bering LCID, unda yozilgan til kodi mavjud Windows ro'yxatga olish kitobi(pastga qarang).

Ro'yxatga olish kitobi muharriri va dekodlash jadvalidan foydalanish

Jamoa regedit ro'yxatga olish kitobi muharririni oching va filialni kengaytiring

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ Language

Tahrirlovchi oynasining o'ng ustunida string parametrini toping (u eng pastda) va uning ma'nosini ko'ring.

Bu to'rt xonali kod bilan ifodalanadi, uni hal qilish uchun siz saytdagi dekodlash jadvalidan foydalanishingiz kerak MSDN... Bizning misolimizda kod 0419 rus tiliga mos keladi.