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:
- 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.
- 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".
- 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.
Dekabr | Olti burchakli | Belgi | Dekabr | Olti burchakli | Belgi | |
---|---|---|---|---|---|---|
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 | 0A | LF | 138 | 8A | Љ | |
011 | 0B | VT | 139 | 8B | ‹ | |
012 | 0C | FF | 140 | 8C | Њ | |
013 | 0D | CR | 141 | 8D | Ќ | |
014 | 0E | SO | 142 | 8E | Ћ | |
015 | 0F | SI | 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 | 1A | OBUNA | 154 | 9A | љ | |
027 | 1B | ESC | 155 | 9B | › | |
028 | 1C | FS | 156 | 9C | њ | |
029 | 1D | GS | 157 | 9D | ќ | |
030 | 1E | Rs | 158 | 9E | ћ | |
031 | 1F | BIZ | 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 | A8 | Yo | |
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 | B8 | e | |
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 | 4A | J | 202 | CA | TO | |
075 | 4B | K | 203 | CB | L | |
076 | 4C | L | 204 | CC | M | |
077 | 4D | M | 205 | CD | H | |
078 | 4E | N | 206 | Idoralar | O | |
079 | 4F | O | 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 | 5A | Z | 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 | 6A | j | 234 | EA | Kimga | |
107 | 6B | k | 235 | EB | l | |
108 | 6C | l | 236 | EC | m | |
109 | 6D | m | 237 | ED | n | |
110 | 6E | n | 238 | EE | O | |
111 | 6F | o | 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 | 7A | z | 250 | FA | b | |
123 | 7B | { | 251 | FB | NS | |
124 | 7C | | | 252 | FC | b | |
125 | 7D | } | 253 | FD | NS | |
126 | 7E | ~ | 254 | FE | NS | |
127 | 7F | DEL | 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.
Kod | Tavsif |
---|---|
NUL, 00 | Bo'sh, bo'sh |
SOH, 01 | Sarlavhaning boshlanishi, sarlavhaning boshlanishi |
STX, 02 | TeXt ning boshlanishi, matnning boshlanishi |
ETX, 03 | TeXt oxiri, matn oxiri |
EOT, 04 | Transmissiyaning oxiri, uzatishning oxiri |
ENQ, 05 | So'ramoq. Tasdiqlashni so'rayman |
ACK, 06 | E'tirof. tasdiqlayman |
BEL, 07 | Qo'ng'iroq, qo'ng'iroq |
BS, 08 | Backspace, bitta belgiga qayting |
Tab, 09 | Tab, gorizontal yorliq |
LF, 0A | Satr tasmasi, chiziq tasmasi Endi ko'pchilik dasturlash tillarida u \ n deb belgilanadi |
VT, 0B | Vertikal yorliq, vertikal yorliq |
FF, 0C | Forma tasmasi, sahifa tasmasi, yangi sahifa |
CR, 0D | Vagonga qaytish Endi ko'pchilik dasturlash tillarida u \ r sifatida belgilanadi |
SO, 0E | Shift Out, bosib chiqarish qurilmasidagi siyoh lentasining rangini o'zgartiring |
SI, 0F | Shift In, bosib chiqarish qurilmasidagi siyoh lentasining rangini orqaga qaytaring |
DLE, 10 | Data Link Escape, kanalni ma'lumot uzatishga o'tkazish |
DC1, 11 DC2, 12 DC3, 13 DC4, 14 | Qurilmani boshqarish, qurilmani boshqarish belgilari |
NAK, 15 | Salbiy e'tirof, tan olmang |
SIN, 16 | Sinxronizatsiya. Sinxronizatsiya belgisi |
ETB, 17 | Matn blokining oxiri, matn blokining oxiri |
JON, 18 | Bekor qilish, avval o'tganni bekor qilish |
EM, 19 | O'rta oxiri, ma'lumot tashuvchining oxiri |
SUB, 1A | O'zgartirish Uzatish paytida qiymati yo'qolgan yoki buzilgan belgi o'rniga qo'yilgan |
ESC, 1B | Qochish ketma -ketligi |
FS, 1C | Fayl ajratuvchi, fayl ajratuvchi |
GS, 1D | Guruh ajratuvchi, guruh ajratuvchi |
RS, 1E | Yozuvni ajratuvchi, yozuvni ajratuvchi |
AQSh, 1F | Birlik ajratuvchi, birlik ajratuvchi |
DEL, 7F | O'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.