Bosh sahifa Wiki Code page

Code page

Code page — bayt qiymatlarini belgilar va boshqaruv kodlariga moslaydigan character encoding jadvali. Atama ayniqsa DOS va Windows kabi tizimlarda 8-bitli kodlash variantlarini nomlash uchun ishlatiladi. Masalan, bir xil 0xC0 bayti turli code page’da boshqa harfni anglatishi mumkin. Fayl yoki oqim qaysi jadvalda yozilgani noma’lum bo‘lsa, matn buzilgan ko‘rinadi.

Tarixiy ehtiyoj

ASCII 7 bitda ingliz alifbosi, raqam va asosiy belgilarni qamrab olgan. Sakkizinchi bitdan foydalanish turli til va mintaqa uchun qo‘shimcha 128 pozitsiya berdi. Natijada Latin-1, Windows-1251, OEM 866 va ko‘plab boshqa kodlashlar paydo bo‘ldi. Bitta 8-bit jadval barcha yozuvlarni sig‘dira olmagani uchun hujjat tili bilan encoding birga tanlangan.

IBM PC’da OEM code page konsol va DOS ilovalari uchun, Windows code page esa grafik dasturlar uchun ishlatilgan. Shu kompyuterning o‘zida ham bir bayt ketma-ketligi konsol va matn muharririda turlicha chiqishi mumkin edi. “ANSI code page” nomi Windows muhitida keng ishlatiladi, ammo u yagona ANSI standarti yoki bitta universal encoding emas.

Decode va encode

Baytni matnga aylantirish decode, Unicode matnini muayyan code page baytlariga aylantirish encode deyiladi. Target jadvalda belgi bo‘lmasa encoder xato beradi, ? bilan almashtiradi yoki transliteratsiya qiladi. Silent replacement ma’lumot yo‘qotadi; qayta ochilganda asl belgini tiklab bo‘lmaydi.

Mojibake baytlar noto‘g‘ri encoding bilan decode qilinganda yuz beradi. UTF-8’dagi o‘zbek apostrofi yoki kirill matni Windows-1252 deb o‘qilsa g‘alati belgilar ketma-ketligi paydo bo‘lishi mumkin. Noto‘g‘ri matn qayta saqlansa ikki bosqichli buzilish sodir bo‘ladi. Avval original bayt nusxasi saqlanib, encoding ishonchli metadata yoki manba konteksti orqali aniqlanadi.

Unicode’ga o‘tish

Unicode barcha yozuvlar uchun umumiy code point fazosini beradi, UTF-8 esa uni baytlarda kodlaydi. Zamonaviy veb va ko‘p platformali tizimlarda UTF-8 asosiy tanlovga aylangan. Shunga qaramay, legacy database, bank almashinuvi, qurilma protokoli va eski CSV code page talab qilishi mumkin.

Tizim chegarasida encoding explicit ko‘rsatiladi. HTTP’da Content-Type charset parametri, HTML’da <meta charset="utf-8">, database connection’da client encoding mos bo‘lishi kerak. “Default encodingoperatsion tizim va locale’ga bog‘liq bo‘lib, production hamda developer kompyuterida turlicha natija berishi mumkin.

Migratsiya

Migratsiya oldidan fayllar namuna bo‘yicha emas, butun korpus bo‘yicha tekshiriladi. Ayrim byte sequence bir nechta code page’da qonuniy bo‘lgani uchun avtomatik detection taxminiydir. Til lug‘ati, manba tizimi va known markerlar confidence’ni oshiradi. Shubhali fayllar alohida ko‘rib chiqiladi.

Conversion pipeline baytlarni manba code page’dan Unicode’ga decode qilib, keyin UTF-8’ga encode qiladi. Orada text normalization va line ending siyosati alohida qaror sifatida qo‘llanadi. Round-trip test targetdan qayta encode qilinganda muhim belgilar saqlanganini ko‘rsatadi. Hash faqat bayt o‘zgarmaganini tekshiradi; encoding almashganda semantic matn tengligi kerak.

Dasturlash interfeyslarida code page

Eski operatsion tizim API’si “narrow string”ni joriy process code page’ida talqin qilishi mumkin. Xuddi shu binary boshqa locale’da boshqa filename yoki foydalanuvchi nomini ko‘radi. Unicode variantli API va aniq UTF-8 chegarasi bu bog‘liqlikni kamaytiradi. Library tashqi code page qabul qilsa, parametr nomida yoki konfiguratsiyada encoding ko‘rsatiladi.

Database importida ustunlar aralash encodingda bo‘lishi ham mumkin. Butun faylga bitta detection qo‘llash ayrim qatorni buzadi. Source tizim eksport qoidasi, ustun semantikasi va checksum bilan partiyalar ajratilib, conversion xatolari alohida karantinga yuboriladi; ularni jim almashtirib production jadvaliga kiritish mumkin emas.

Bog‘liq tushunchalar

Character encoding, ASCII, Unicode, UTF-8, Mojibake, Locale, Text transcoding