Ma'lumki, Windows 10 interfeysning lokalizatsiyasini o'zgartirishingiz mumkin bo'lgan til paketlarini o'rnatishni qo'llab-quvvatlaydi operatsion tizim... 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 o'rnatish orqali tili o'zgartirilgan korporativ kompyuterda ishlayotgan bo'lsangiz MUI
-paketlar, siz tizimda dastlab qaysi til ishlatilganligini bilishni xohlashingiz mumkin.
Tizim tilini aniqlashning bir necha yo'li mavjud.
Keling, ularni tartibda ko'rib chiqaylik.
DISM Console Utility dasturidan foydalanish
Buyruqlar qatorini administrator sifatida ishga tushiring va unda ishga tushiring dism buyrug'i/ onlayn / get-intl. Natijani bir necha soniya ichida oling.
Parametrga e'tibor bering "Birlamchi 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 kodlari mavjud windows ro'yxatga olish kitobi(pastga qarang).
Ro'yxatga olish kitobi muharriridan foydalanish va jadvalni dekodlash
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.
U to'rt xonali kod bilan ifodalanadi, uni dekodlash uchun saytdagi dekodlash jadvalidan foydalanish kerak. MSDN... Bizning misolimizda kod 0419 rus tiliga mos keladi.
Krakozyabry- qanday so'z juda qiziq? Ushbu so'z odatda rus foydalanuvchilari tomonidan dasturlarda yoki Operatsion tizimning o'zida belgilarning noto'g'ri / noto'g'ri ko'rsatilishi (kodlanishi) uchun ishlatiladi.
Nima uchun bu sodir bo'ladi? Siz aniq javob topa olmaysiz. Bu bizning "sevimli" viruslarimizning hiyla-nayranglari bilan bog'liq bo'lishi mumkin, Windows operatsion tizimining noto'g'ri ishlashi (masalan, elektr quvvati o'chib, kompyuter o'chirilgan), dastur boshqasi bilan ziddiyat yaratgan bo'lishi mumkin yoki OS va hamma narsa "uchib ketdi". Umuman olganda, ko'p sabablar bo'lishi mumkin, lekin eng qiziqarlisi "Uni 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 ekanligimni tushunmaydi, bu erda bir nechtasi:
Aytgancha, men ham bir marta bu vaziyatga tushib qolganman va mening ish stolimda hali ham uni engishimga yordam bergan fayl bor. Shuning uchun men ushbu maqolani yozishga qaror qildim.
Windows-da kodlashni (shriftni) ko'rsatish uchun bir nechta "narsalar" javobgardir - bular til, ro'yxatga olish kitobi va OTning o'zi fayllari. Endi biz ularni alohida-alohida va nuqta bo'yicha tekshiramiz.
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. Ehtimol, u yo'qolgandir.
Shunday qilib, yo'l bo'ylab boring: Boshqaruv paneli - Mintaqaviy va til parametrlari - Kengaytirilgan yorlig'i
U erda biz rus tili bo'lishini qidiramiz.
Windows XP da, bunga qo'shimcha ravishda, pastki qismida "Konversiya jadvallari kod sahifalari" ro'yxati mavjud va unda 20880 raqami bilan chiziq mavjud. U yerda ham rus tilini bilishingiz kerak
6.
Oxirgi nuqta, unda men sizga hamma narsani tuzatishga yordam bergan faylni beraman va shuning uchun uni esdalik sifatida qoldirdim. Mana arxiv:
Ichkarida ikkita fayl mavjud: 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 tavsiya etiladi.
Ana xolos. Endi siz dasturda yoki Windowsda Krakozyabralarni (kvadratchalar, ierogliflar, undov va savol belgilari) qanday tuzatishni bilasiz.
Windows-1251 - barcha rus versiyalari uchun standart 8-bitli kodlash bo'lgan belgilar to'plami va kodlash Microsoft Windows... Ushbu kodlash Sharqiy Evropa mamlakatlarida juda mashhur. Windows-1251 an'anaviy rus tipografiyasida ishlatiladigan deyarli barcha belgilar mavjudligi bilan boshqa 8-bitli kirill kodlashlari (CP866, KOI8-R va ISO 8859-5 kabi) bilan yaxshi taqqoslanadi. Oddiy matn(faqat urg'u belgisi yo'q). Kirill harflari alifbo tartibida.
Windows-1251 shuningdek, rus tiliga yaqin 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 | Hex | Belgi | dekabr | Hex | 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 | SUB | 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 | AE | ® | |
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 | BO'LING | ѕ | |
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 | N | |
078 | 4E | N | 206 | Idoralar | O | |
079 | 4F | O | 207 | CF | P | |
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 | X | |
086 | 56 | V | 214 | D6 | C | |
087 | 57 | V | 215 | D7 | H | |
088 | 58 | X | 216 | D8 | Sh | |
089 | 59 | Y | 217 | D9 | SCH | |
090 | 5A | Z | 218 | DA | B | |
091 | 5B | [ | 219 | JB | S | |
092 | 5C | \ | 220 | DC | B | |
093 | 5D | ] | 221 | DD | E | |
094 | 5E | ^ | 222 | DE | YU | |
095 | 5F | _ | 223 | DF | MEN | |
096 | 60 | ` | 224 | E0 | a | |
097 | 61 | a | 225 | E1 | b | |
098 | 62 | b | 226 | E2 | v | |
099 | 63 | c | 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 | P | |
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 | X | |
118 | 76 | v | 246 | F6 | c | |
119 | 77 | w | 247 | F7 | h | |
120 | 78 | x | 248 | F8 | w | |
121 | 79 | y | 249 | F9 | SCH | |
122 | 7A | z | 250 | FA | b | |
123 | 7B | { | 251 | FB | s | |
124 | 7C | | | 252 | FK | b | |
125 | 7D | } | 253 | FD | eh | |
126 | 7E | ~ | 254 | FE | Yu | |
127 | 7F | DEL | 255 | FF | men |
Maxsus (nazorat) belgilar tavsifi
Dastlab, ASCII boshqaruv belgilari (diapazon 00-31, plyus 127) teletayp mashinalari, zarbli lenta kiritish va boshqalar kabi apparat qurilmalarini boshqarish uchun mo'ljallangan.
Boshqarish belgilaridan (gorizontal yorliqlar, chiziqli tasmalar va karetkalarni qaytarishdan tashqari) HTML hujjatlarida foydalanilmaydi.
Kod | Tavsif |
---|---|
NUL, 00 | Null, 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 | Tasdiqlash. tasdiqlayman |
BEL, 07 | Qo'ng'iroq, qo'ng'iroq |
BS, 08 | Backspace, bitta belgi orqaga qayting |
TAB, 09 | Yorliq, gorizontal yorliq |
LF, 0A | Satr tasmasi, chiziq tasmasi Endi ko'pgina dasturlash tillarida u \ n sifatida belgilanadi |
VT, 0B | Vertikal yorliq, vertikal yorliq |
FF, 0C | Shakl tasmasi, sahifa tasmasi, yangi sahifa |
CR, 0D | Vagonga qaytish Endi ko'pgina dasturlash tillarida u \ r sifatida belgilanadi |
SO, 0E | Shift Out, bosib chiqarish qurilmasidagi siyoh tasmasi rangini o'zgartiring |
SI, 0F | Shift In, bosib chiqarish qurilmasidagi siyoh tasmasi rangini orqaga qaytaring |
DLE, 10 | Data Link Escape, kanalni ma'lumotlarni uzatishga o'tkazing |
DC1, 11 DC2, 12 DC3, 13 DC4, 14 | Qurilmani boshqarish, qurilmani boshqarish belgilari |
NAK, 15 | Salbiy tan olish, tan olmang |
SYN, 16 | Sinxronizatsiya. Sinxronlash 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'rinbosar O'tkazish vaqtida qiymati yo'qolgan yoki buzilgan belgi o'rniga joylashtirilgan |
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. |
Salom aziz blog o'quvchilari. Bugun biz siz bilan krakozyabrlar sayt va dasturlarda qayerdan kelgani, qanday matn kodlari mavjudligi va qaysilaridan foydalanish kerakligi haqida gaplashamiz. Keling, asosiy ASCII-dan boshlab, shuningdek, uning kengaytirilgan CP866, KOI8-R, Windows 1251 versiyalaridan boshlab va Unicode konsorsiumining UTF 16 va 8 zamonaviy kodlashlari bilan yakunlangan ularning rivojlanish tarixini batafsil ko'rib chiqaylik.
Ba'zilar uchun bu ma'lumot ortiqcha bo'lib tuyulishi mumkin, lekin siz mendan sudralib chiqqan krakozyabrlar (o'qib bo'lmaydigan belgilar to'plami) bo'yicha qancha savollarni olganimni bilasiz. Endi men barchani ushbu maqola matniga havola qilish va mustaqil ravishda o'z murabbolarimni topish imkoniyatiga ega bo'laman. Xo'sh, ma'lumotni o'zlashtirishga tayyor bo'ling va voqeani kuzatishga harakat qiling.
ASCII - lotin uchun asosiy matn kodlash
Matnni kodlashning rivojlanishi IT-industriyasining shakllanishi bilan bir vaqtda sodir bo'ldi va shu vaqt ichida ular juda ko'p o'zgarishlarga duch kelishdi. Tarixiy jihatdan hammasi EBCDIC-dan boshlandi, bu rus talaffuzida unchalik uyg'un emas edi, bu lotin alifbosi harflarini, arab raqamlarini va tinish belgilarini nazorat belgilar bilan kodlash imkonini berdi.
Ammo shunga qaramay, zamonaviy matn kodlarini ishlab chiqishning boshlang'ich nuqtasi mashhurdir ASCII(Axborot almashish uchun Amerika standart kodeksi, rus tilida odatda "aski" deb talaffuz qilinadi). Unda ingliz tilida so'zlashuvchi foydalanuvchilar tomonidan eng ko'p qo'llaniladigan birinchi 128 ta belgi - arab raqamlari va tinish belgilari tasvirlangan.
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:
Aynan shu 128 ta belgi ASCII-ning asl nusxasi standart bo'lib qoldi va boshqa har qanday kodlashda siz ularni albatta uchratasiz va ular shu tartibda turadi.
Ammo haqiqat shundaki, bir bayt ma'lumot yordamida 128 emas, balki 256 ta turli 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 qo'llaniladigan sanoq tizimlari haqida bir oz ko'proq gapirish kerak. Birinchidan, barchangizga ma'lumki, kompyuter faqat ikkilik tizimdagi raqamlar bilan ishlaydi, ya'ni nollar va birlar bilan ("Mantiqiy algebra", agar kimdir kollej yoki maktabga borgan bo'lsa). , ularning har biri noldan boshlab 2 quvvatga ega va ettinchida ikkitagacha:
Bunday konstruksiyada atigi 256 ta nol va birlik birikmasi bo‘lishi mumkinligini tushunish qiyin emas.Sonni ikkilik sistemadan o‘nlik kasrga aylantirish juda oddiy. Siz faqat yuqorida mavjud bo'lgan ikkita kuchning barcha kuchlarini qo'shishingiz kerak.
Bizning misolimizda bu 1 (nol kuchga 2) plyus 8 (ikkitadan 3 kuchga), ortiqcha 32 (ikkidan beshinchi darajaga), ortiqcha 64 (oltinchi darajaga), ortiqcha 128 (ettinchi daraja). Hammasi bo'lib 233 dyuymni oladi o'nlik tizim 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 oltilik tizimga o'tkazish 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 skrinshotda ko'rsatilgandek emas, balki noldan boshlab darajalarni qayta hisoblash kerak bo'ladi. Natijada, oddiy hisob-kitoblar orqali biz E9 raqami skrinshotda kodlanganligini bilib olamiz. Umid qilamanki, mening fikrlash jarayonim va bu jumboqning yechimi siz uchun aniq bo'ldi. Xo'sh, endi matn kodlash haqida gapirishni davom ettiramiz.
Asuka-ning kengaytirilgan versiyalari - CP866 va KOI8-R kodlashlari psevdografika bilan
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 lotin alifbosining atigi 128 ta belgisini, arab raqamlarini va boshqa narsalarni o'z ichiga olgan, ammo kengaytirilgan versiyada ma'lumotlarning bir baytida kodlanishi mumkin bo'lgan barcha 256 qiymatdan foydalanish mumkin bo'ldi. Bular. Aski-ga tilingiz harflarining belgilarini qo'shish mumkin bo'ldi.
Bu erda aniqlik kiritish uchun yana bir bor chetlanish kerak bo'ladi - Nima uchun bizga umuman kodlash kerak matnlar va nima uchun bu juda muhim. Kompyuteringiz ekranidagi belgilar ikki narsaga asoslanadi - barcha turdagi belgilarning vektor shakllari to'plami (namoyishlari) (ular kofayllarda joylashgan) va ushbu vektor shakllari to'plamidan chiqarishga imkon beruvchi kod. (shrift fayli) to'g'ri joyga kiritilishi kerak bo'lgan belgi.
Vektor shakllari uchun shriftlarning o'zi mas'ul ekanligi aniq, lekin kodlash uchun operatsion tizim va unda ishlatiladigan dasturlar javobgar. 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. Hammasi oddiy va oddiy.
Bu shuni anglatadiki, bizga kerak bo'lgan har qanday belgini (masalan, milliy alifbodan) kodlash uchun ikkita shart bajarilishi kerak - bu belgining vektor shakli ishlatiladigan shriftda bo'lishi kerak va bu belgi kengaytirilgan ASCII kodlashlarida kodlanishi mumkin. bir bayt. Shuning uchun bunday variantlarning to'liq to'plami mavjud. Faqat rus tilidagi belgilarni kodlash uchun kengaytirilgan Asuka-ning bir nechta turlari mavjud.
Masalan, dastlab paydo bo'lgan CP866, unda rus alifbosining belgilaridan foydalanish mumkin edi va bu ASCII ning kengaytirilgan versiyasi edi.
Bular. uni yuqori qismi Yuqoridagi skrinshotda keltirilgan Asuka-ning asosiy versiyasiga (128 lotincha harflar, raqamlar va boshqa har qanday axlat) to'liq mos keldi, lekin allaqachon CP866 kodli jadvalning pastki qismida skrinshotda ko'rsatilgan shakl mavjud edi va yana 128 ta belgini kodlashga ruxsat berilgan (ruscha harflar va barcha turdagi psevdografikalar):
Ko'ryapsizmi, o'ng ustunda raqamlar 8 dan boshlanadi, chunki 0 dan 7 gacha bo'lgan raqamlar asosiy ASCII qismiga ishora qiladi (birinchi skrinshotga qarang). Bu. CP866-dagi ruscha "M" harfi 9C kodiga ega bo'ladi (u 9 bilan mos keladigan chiziq va o'n oltilik tizimda C raqami bo'lgan ustunning kesishmasida joylashgan), uni bir bayt ma'lumotda yozish 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 matn uchun ushbu kodlash o'sha mo'ynali yillarda, hozirgidek grafik operatsion tizimlarning tarqalishi bo'lmaganda ishlab chiqilgan. Va Dos va shunga o'xshash matnli operatsion tizimlarda psevdo-grafika matnlarning dizaynini qandaydir tarzda diversifikatsiya qilish imkonini berdi va shuning uchun CP866 va uning boshqa barcha tengdoshlari Asuka kengaytirilgan versiyalari toifasidan juda ko'p.
CP866 IBM tomonidan tarqatilgan, ammo bunga qo'shimcha ravishda ruscha belgilar uchun bir qator kodlashlar ishlab chiqilgan, masalan, ushbu turdagi (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 jadvalining ikkinchi yarmi ko'rsatilgan, chunki birinchi yarmi ushbu maqoladagi birinchi skrinshotda ko'rsatilgan asosiy Asuka bilan to'liq mos keladi.
KOI8-R kodlash xususiyatlaridan shuni ta'kidlash mumkinki, uning jadvalidagi rus harflari, masalan, CP866-da bo'lgani kabi, alifbo tartibida emas.
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 faqat bitta bitni (ikkidan ettinchi darajagacha yoki 128) tashlab, ruscha belgilardan lotin harflariga o'tish qulayligi uchun qilingan.
Windows 1251 - ASCII ning zamonaviy versiyasi va nima uchun krakozyabry chiqadi
Matnni kodlashning keyingi rivojlanishi grafik operatsion tizimlarning ommalashib borayotgani va ularda psevdografikadan foydalanish zarurati vaqt o'tishi bilan yo'qolganligi bilan bog'liq edi. Natijada, butun bir guruh paydo bo'ldi, ular aslida Asuka ning kengaytirilgan versiyalari edi (matnning bir belgisi faqat bir bayt ma'lumot bilan kodlangan), ammo psevdografik belgilardan foydalanmasdan.
Ular Amerika Standartlar Instituti tomonidan ishlab chiqilgan ANSI kodlashlariga tegishli edi. Oddiy tilda, rus tilini qo'llab-quvvatlaydigan versiya uchun hali ham kirill alifbosi nomi ishlatilgan. Bunga misol keltirish mumkin.
U ilgari qo'llanilgan CP866 va KOI8-R dan ijobiy farq qildi, chunki undagi psevdografik belgilarning o'rnini rus tipografiyasining etishmayotgan belgilari (aksent belgisidan tashqari), shuningdek, slavyan tillarida ishlatiladigan belgilar egallagan. rus tiliga yaqin (Ukraina, Belorus va boshqalar) ):
Rus tilidagi kodlashlarning bunday ko'pligi tufayli shrift ishlab chiqaruvchilari va ishlab chiqaruvchilari dasturiy ta'minot Men doimo boshim og'riydi va siz va men, aziz o'quvchilar, tez-tez o'sha mashhur odamlardan chiqib ketamiz krakozyabri matnda ishlatilgan versiya bilan chalkashlik yuzaga kelganda.
Ko'pincha ular orqali xabar jo'natish va qabul qilishda chiqib ketishdi 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.
Darhaqiqat, ruscha matn o'rniga ko'tarilgan krakozyabry bu tilning kodlashidan noto'g'ri foydalanish natijasi bo'lib, u kodlangan tilga mos kelmaydi. matnli xabar dastlab.
Misol uchun, agar biz Windows 1251 kod jadvali yordamida CP866 bilan kodlangan belgilarni ko'rsatishga harakat qilsak, u holda xabar matnini to'liq almashtirib, xuddi shu krakozyabry (ma'nosiz belgilar to'plami) chiqadi.
Shunga o'xshash holat ko'pincha forumlarda yoki bloglarda ruscha belgilar bilan matn noto'g'ri saqlangan bo'lsa, odatiy saytda ishlatiladigan noto'g'ri kodlash yoki noto'g'ri kodlashda sodir bo'ladi. matn muharriri, bu kodga yalang'och ko'zga ko'rinmaydigan gagni qo'shadi.
Oxir-oqibat, ko'pchilik bu vaziyatdan juda ko'p kodlashlar va doimiy ravishda paydo bo'ladigan krakozyaberlardan charchagan edi, barcha mavjudlarini almashtiradigan va oxir-oqibat o'qilmaydigan matnlarning paydo bo'lishining asosiy muammosini hal qiladigan yangi universal variatsiyani yaratish uchun zarur shart-sharoitlar mavjud edi. . Bundan tashqari, xitoy tili kabi tillar muammosi mavjud edi, unda tilning belgilari 256 dan ortiq edi.
Unicode - Universal UTF kodlashlari 8, 16 va 32
Janubi-Sharqiy Osiyo tillari guruhidagi bu minglab belgilarni ASCII ning kengaytirilgan versiyalarida belgilarni kodlash uchun ajratilgan bir bayt ma'lumotda tasvirlab bo'lmaydi. Natijada nomli konsorsium tuzildi 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 konsorsiumi homiyligida chiqarilgan birinchi variatsiya edi UTF 32... Kodlash nomidagi raqam bitta belgini kodlash uchun ishlatiladigan bitlar sonini bildiradi. 32 bit - bu yangi universal UTF kodlashda bitta belgini kodlash uchun kerak bo'ladigan 4 bayt ma'lumot.
Natijada, ASCII ning kengaytirilgan versiyasida va UTF-32 da kodlangan matnli bir xil fayl, ikkinchi holatda, hajmi (og'irligi) 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 har qanday zaruriy qiymatni katta chegara bilan qoplaydi).
Ammo Evropa guruhi tillariga ega bo'lgan ko'plab mamlakatlar kodlashda bunday juda ko'p belgilarni umuman ishlatishga hojat yo'q edi, ammo UTF-32 ishlatilganda, ular hech qachon og'irlikni to'rt baravar oshirmaydilar. matnli hujjatlar, va buning natijasida Internet-trafik hajmi va saqlangan ma'lumotlar miqdori oshadi. Bu juda ko'p va hech kim bunday chiqindilarni ko'tara olmaydi.
Unicode ning rivojlanishi natijasida, UTF-16, bu shunchalik muvaffaqiyatli bo'ldiki, 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 xaritasi" 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.
Aytgancha, ulardan birortasini bosish orqali siz uning ikki baytini ko'rishingiz mumkin UTF-16 kodi to'rtta o'n oltilik raqamdan iborat:
UTF-16 da 16 bitli nechta belgini kodlash mumkin? 65536 (ikki o'n olti darajagacha) va aynan shu raqam Unicode-da asosiy maydon sifatida qabul qilingan. 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 uni UTF-8 deb atashdi. Nomidagi sakkizinchi raqamga qaramasdan, u haqiqatan ham o'zgaruvchan uzunlikka ega, ya'ni. matndagi har bir belgi birdan olti baytgacha bo'lgan ketma-ketlikda kodlanishi mumkin.
Amalda, UTF-8da faqat bir baytdan to'rt baytgacha bo'lgan diapazon qo'llaniladi, chunki to'rt bayt koddan tashqari hech narsani nazariy jihatdan tasavvur qilish ham mumkin emas. Undagi barcha lotin belgilar xuddi eski ASCII-dagi kabi bir baytga kodlangan.
Shunisi e'tiborga loyiqki, faqat lotin alifbosini kodlashda, hatto Unicode-ni tushunmaydigan dasturlar ham UTF-8-da kodlangan narsalarni o'qiydi. Bular. Asuka-ning asosiy qismi hozirgina Unicode konsorsiumining ushbu miyasiga o'tdi.
UTF-8-dagi kirillcha belgilar ikki baytda, masalan, gruzin harflari 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 faqat kuchli va imkoniyatlaridan kelib chiqqan holda matn belgilarining vektor shakllari bilan to'ldirishlari mumkin. Endi hatto to'plamlarda ham.
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 endi ular turli xil kodlashlar uchun yaratilganligi bilan emas, balki shrift ishlab chiqaruvchisi ma'lum vektor shakllari bilan bitta kod maydonini oxirigacha to'ldirganligi yoki to'ldirmaganligi bilan farq qiladi.
Rus harflari o'rniga Krakozyabry - uni 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 qismlari yordamida kodni yaratadigan yoki tahrirlaydigan dasturda o'rnatiladi.
Tahrir qilish va yaratish uchun matnli fayllar Men shaxsan menimcha, juda yaxshisini ishlataman. Biroq, u yana yuzlab yaxshi dasturlash va belgilash tillarining sintaksisini ajratib ko'rsatishi mumkin, shuningdek, plaginlar yordamida kengaytirish qobiliyatiga ega. O'qing batafsil ko'rib chiqish taqdim etilgan havoladan ushbu ajoyib dastur.
V yuqori menyu Notepad ++ da "Kodlashlar" elementi mavjud bo'lib, unda siz mavjud versiyani saytingizda sukut bo'yicha ishlatiladigan versiyaga o'zgartirishingiz mumkin:
Joomla 1.5 va undan yuqori versiyadagi saytlarda, shuningdek WordPress-da blogda yoriqlar paydo bo'lishining oldini olish uchun variantni tanlang. BOMsiz UTF 8... BOM prefiksi nima?
Gap shundaki, YUTF-16 kodlash ishlab chiqilganda, ular negadir unga belgilar kodini to'g'ridan-to'g'ri ketma-ketlikda (masalan, 0A15) va teskari (150A) yozish qobiliyatini biriktirishga qaror qilishdi. . Va dasturlar kodlarni qaysi ketma-ketlikda o'qishni tushunishi uchun va ixtiro qilingan BOM Hujjatlarning eng boshida uchta qo'shimcha bayt qo'shilishi bilan ifodalangan (bayt tartibi belgisi yoki boshqacha qilib aytganda, imzo).
UTF-8 kodlashda Unicode konsorsiumida BOM taqdim etilmaydi va shuning uchun imzo qo'shilishi (hujjatning boshiga eng mashhur qo'shimcha uch bayt) shunchaki 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 krakozyabrovdan o'zingizni himoya qiling.
Shunisi e'tiborga loyiqki, Windows-dagi ba'zi dasturlar buni qila olmaydi (ular BOMsiz UTP-8da matnni saqlay olmaydi), masalan, mashhur Windows Notepad. U hujjatni UTF-8 da saqlaydi, lekin baribir boshiga imzo qo‘shadi (uchta qo‘shimcha bayt). 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 krakozyabrlarning ko'rinishini xohlamasangiz. Eng yaxshi va eng oddiy variant Men yuqorida aytib o'tilgan muharrir Notepad ++ deb hisoblayman, u deyarli hech qanday kamchiliklarga ega emas va faqat afzalliklardan iborat.
Notepad ++ da, kodlashni tanlashda siz matnni Unicode standartiga juda yaqin bo'lgan UCS-2 kodlashiga aylantirishingiz mumkin. Shuningdek, Notepad-da ANSI-da matnni kodlash mumkin bo'ladi, ya'ni. Rus tiliga nisbatan biz buni Windows 1251 dan biroz yuqorida tasvirlab beramiz. Bu ma'lumot qayerdan olingan?
U operatsiya xonasining reestrida ro'yxatga olingan. Windows tizimlari- ANSI holatida qaysi kodlashni tanlash kerak, OEM holatida qaysi birini tanlash kerak (rus tili uchun u 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 kerak bo'lgan kodlashda saqlaganingizdan yoki tahrirlash uchun saytdan hujjatni ochganingizdan so'ng, muharrirning pastki o'ng burchagida uning nomini ko'rishingiz mumkin:
Krakozyabrovdan qochish uchun, yuqorida tavsiflangan harakatlarga qo'shimcha ravishda, uning sarlavhasida yozish foydali bo'ladi manba kodi Saytning barcha sahifalarida server yoki mahalliy xostda chalkashliklarga yo'l qo'ymaslik uchun ushbu kodlash haqida ma'lumot.
Umuman olganda, Html-dan tashqari barcha gipermatn belgilash tillarida matn kodlashni ko'rsatadigan maxsus xml deklaratsiyasi qo'llaniladi.
Kodni tahlil qilishni boshlashdan oldin brauzer qaysi versiyadan foydalanilayotganini va ushbu tilning belgilar kodlari qanday talqin qilinishi kerakligini bilib oladi. Shunisi e'tiborga loyiqki, agar siz hujjatni standart unicode-da saqlasangiz, ushbu xml deklaratsiyasini o'tkazib yuborishingiz mumkin (agar BOM bo'lmasa, kodlash UTF-8 yoki BOM bo'lsa YUTF-16 deb hisoblanadi).
Html hujjatida kodlash ko'rsatilgan Meta element, bosh teglari ochish va yopish orasiga yoziladi:
... ...
Ushbu yozuv qabul qilinganidan ancha farq qiladi, ammo ayyorlikda kiritilgan yangisiga to'liq mos keladi. Html standarti 5 va u hozirda foydalanilayotgan har qanday brauzer tomonidan 100% to'g'ri tushuniladi.
Nazariy jihatdan, Html hujjatining kodlanishini ko'rsatadigan Meta elementi yaxshiroq o'rnatilgan bo'lar edi hujjatning sarlavhasida iloji boricha yuqori Shunday qilib, matnda asosiy ANSI dan bo'lmagan (har doim to'g'ri va har qanday o'zgarishlarda) bo'lmagan birinchi belgi bilan uchrashish vaqtida brauzer allaqachon ushbu belgilar kodlarini qanday izohlash haqida ma'lumotga ega 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 undan WordPress-ni kompyuterga o'rnatish uchun foydalanish misoli
Chmod nima, fayl va papkalarni (777, 755, 666) tayinlash uchun qanday ruxsatlar va buni PHP orqali qanday qilish kerak
Saytda va onlayn do'konda Yandex qidiruvi