Кіріспе
1980 және 90-шы жылдарда қолданылған таңба жиынтықтары. Windows кодтық беттері – Microsoft Windows-тың 1980 және 1990-шы жылдардағы нұсқаларында қолданылған таңбалар жиынтығы немесе кодтық беттер (басқа операциялық жүйелерде таңба кодтамалары деп аталады). Windows-та Unicode енгізілген кезде Windows кодтық беттері біртіндеп тоқтатылды, бірақ олар әлі де Windows және басқа платформаларда қолдауға ие, сондай-ақ Alt кодының тез түйірлері қолданылғанда да қолданылады. Windows жүйелерінде жүйелік кодтық беттердің екі тобы бар: OEM және Windows-қа тән ("ANSI") кодтық беттер. (ANSI – Америкалық Ұлттық Стандарттар Институты). Осы екі топтағы кодтық беттер кеңейтілген ASCII кодтық беттері болып табылады. Қосымша кодтық беттер стандартты Windows түрлендіру процедураларымен қолдалады, бірақ олар ешқандай жүйелік кодтық бет ретінде қолданылмайды.
Windows code pages are sets of characters or code pages (known as character encodings in other operating systems) used in Microsoft Windows from the 1980s and 1990s. Windows code pages were gradually superseded when Unicode was implemented in Windows, although they are still supported both within Windows and other platforms, and still apply when Alt code shortcuts are used. There are two groups of system code pages in Windows systems: OEM and Windows native ("ANSI") code pages. (ANSI is the American National Standards Institute.) Code pages in both of these groups are extended ASCII code pages. Additional code pages are supported by standard Windows conversion routines, but not used as either type of system code page.
ANSI кодының беті
ANSI код парақтары (Microsoft бұрынғы терминді қате деп мойындағаннан кейін ресми түрде "Windows код парақтары" деп аталады) Windows жүйелерінде графикалық интерфейсі бар, Unicode емес (яғни, байтқа бағытталған) бағдарламалар үшін қолданылады. "ANSI" термині қате, себебі бұл Windows код парақтары ANSI (American National Standards Institute) стандартына сәйкес келмейді; 1252 код парағы ISO 8859-1 халықаралық стандартына айналған ANSI-нің алғашқы нұсқасына негізделген.
ANSI Windows код парақтары, әсіресе 1252 код парағы, ANSI-ге ұсынылған немесе арналған жобаларға негізделгендіктен осылай аталды. Дегенмен, ANSI және ISO осы код парақтарының ешқайсысын стандарттаған жоқ. Олардың орнына: Барлық қазіргі Microsoft өнімдері мен қолданбалық бағдарлама интерфейстері ішкі түрде Unicode-ті пайдаланады, бірақ кейбір бағдарламалар мәтіндік деректерді файлдарға немесе стандартты шығысқа оқу және жазу кезінде компьютердің 'жергілікті' кодировкасын қолдануды жалғастырады. Сондықтан, әлемнің бір бөлігінде оқылып, түсінікті болатын файлдар, екінші бір бөлігінде түсініксіз әрі дұрыс емес символдармен көрсетілуі мүмкін.
UTF-8, UTF-16
Microsoft Unicode кодтамасын қабылдады (алғашқыда қазір ескірген UCS-2, ол кезде Unicode-тің жалғыз кодтамасы болған), яғни Windows NT жүйесінен бастап барлық операциялық жүйелері үшін UTF-16 қолданды, бірақ Windows 10 нұсқасы 1803-тен бастап UTF-8 (CP UTF8) қолдауын да қосты. UTF-16 негізгі көптілді жазықтықтағы (BMP) барлық Unicode символдарын 16 битпен бірегей кодтайды, ал қалған Unicode (мысалы, эмодзилер) 32 биттік (төрт байттық) кодпен кодталады. Ал индустрияның қалған бөлігі (Unix сияқты жүйелер және интернет) қазір Microsoft таңдаған UTF-8 (7 биттік ASCII символдары үшін бір байт, BMP-дегі басқа символдар үшін екі немесе үш байт, ал қалғандары үшін төрт байт қолданады) стандартын қолданады.
Windows-125x сериясы
Бұл тоғыз код парақшасы ASCII 8 бит SBCS кодтамаларының кеңейтілген түрі болып табылады және Microsoft компаниясы оларды Windows жүйесінде ANSI код парақшалары ретінде пайдалану үшін жасаған. Олар IANA тіркелген атауымен windows <number> деп белгілі, бірақ кейде cp <number> деп те аталады, мұндағы "cp" – "код парағы" деген сөздің қысқартылған түрі. Олардың барлығы ANSI код парақшалары ретінде қолданылады; Windows 1258 сонымен қатар OEM код парақшасы ретінде де қолданылады. Windows 125x сериясына тоғыз ANSI код парақшасы кіреді және олар негізінен Еуропа мен Батыс Азия тілдерін, сондай-ақ Вьетнам тілін қамтиды. Тай және Шығыс Азия тілдері үшін жүйелік кодтамалар ұқсас IBM код парақшаларымен сәйкес келетіндей етіп нөмірленген және ANSI және OEM код парақшалары ретінде қолданылады; олар келесі бөлімдерде сипатталады. ID Сипаттама ISO 8859 немесе басқа белгіленген кодтамалармен байланысы1250Латын 2 / Орталық Еуропа1251Кириллица1252Латын 1 / Батыс Еуропа1253Грек ISO 8859 7-ге ұқсас, бірақ бірнеше таңбаларды, соның ішінде әріпті жылжытады.1254Түрік1255Иврит ISO 8859 8-дің кеңейтілген түрі, бірақ екі үйлесімсіз пунктуациялық өзгеріс бар.1256Араб1257Балтық ISO 8859 4 емес; кейінгі ISO 8859 13 оған жақын, бірақ қолданылатын пунктуацияда кейбір айырмашылықтар бар.1258Вьетнам (сонымен қатар OEM)
Шығыс Азияның көп байт кодтары
Бұл жиі бірдей нөмірдегі IBM код парақтарынан өзгеше болады: 932, 949 және 950 код парақтары бірдей нөмірдегі IBM код парақтарымен тек жартылай ғана сәйкес келеді, ал 936 нөмірін IBM қазірде қолданылмайтын басқа оңайлатылған қытай кодировкасы үшін пайдаланған, ал Windows 951, бір түрлі шешімнің бөлігі ретінде, IBM 951-мен ешқандай байланысы жоқ. IBM эквивалентті код парақтары екінші бағанда келтірілген. 932, 936, 949 және 950/951 код парақтары тиісті локальдерде ANSI және OEM код парақтары ретінде қолданылады. IDТілдік кодировкаIBM эквивалентіБірдей нөмірлі IBM CCSID-ден айырмашылығыПайдалану932ЖапонShift JIS (Microsoft нұсқасы)943IBM 932 сонымен қатар Shift JIS, азырақ кеңейтулері бар (бірақ оның кеңейтулері ортақ), және JIS C 6226 бұрынғы басылымдарымен үйлесімділік үшін кейбір түрдегі қытай иероглифтерін (itaiji) ауыстырады. ANSI/OEM (Жапония)936Қытай (оңайлатылған)GBK1386IBM 936 – 1993 жылдан бері қолданылмайтын, өзгеше кодировка әдісімен жазылған оңайлатылған қытай кодировкасы. ANSI/OEM (ҚХР, Сингапур)949КорейUnified Hangul Code1363IBM 949 сонымен қатар EUC KR жиынтығы, бірақ әртүрлі (қақтығысқа түсетін) кеңейтулері бар. ANSI/OEM (Корея Республикасы)950Қытай (дәстүрлі)Big5 (Microsoft нұсқасы)1373IBM 950 сонымен қатар Big5, бірақ ETEN кеңейтулерінің өзгеше жиынтығын қамтиды, кеңейтілген соңғы байт диапазоны бар қосымша кеңейтулерді қосады және Еуро символын қамтымайды. ANSI/OEM (Тайвань, Гонконг)951Қытай (дәстүрлі), кантондық диалектіні қоса алғандаBig5 HKSCS (2001 басылымы)5471IBM 951 – IBM 949-дан (жоғарыда қараңыз) екі байттық жазылым және Microsoft-тың 951 нөмірін ішкі пайдалануымен ешқандай байланысы жоқ. ANSI/OEM (Гонконг, 98/NT4/2000/XP HKSCS патчымен)Операциялық жүйе кітапханаларын пайдалану арқылы кодтау немесе декодтау үшін бірнеше көп байтты код парақтары қолдау көрсетіледі, бірақ ешқандай локальде жүйелік кодировка ретінде қолданылмайды. IDIBM эквивалентіТілдік кодировкаПайдалану1361КорейJohab (KS C 5601 1992 қосымша 3)Трансформациялау20000Қытай (дәстүрлі)CNS 11643 кодировкасыТрансформациялау20001Қытай (дәстүрлі)TCAТрансформациялау20002Қытай (дәстүрлі)Big5 (ETEN нұсқасы)Трансформациялау20003938Қытай (дәстүрлі)IBM 5550Трансформациялау20004Қытай (дәстүрлі)TeletextТрансформациялау20005Қытай (дәстүрлі)WangТрансформациялау20932954 (шамамен)ЖапонEUC JPТрансформациялау209365479Қытай (оңайлатылған)GB 2312Трансформациялау20949, 51949970КорейWansung (ASCII-мен 8 бит, яғни EUC KR)Трансформациялау
A few further multiple byte code pages are supported for decoding or encoding using operating system libraries, but not used as either sort of system encoding in any locale. IDIBM EquivalentLanguageEncodingUse1361 KoreanJohab (KS C 5601 1992 annex 3)Conversion20000 Chinese (traditional)An encoding of CNS 11643Conversion20001 Chinese (traditional)TCAConversion20002 Chinese (traditional)Big5 (ETEN variant)Conversion20003938Chinese (traditional)IBM 5550Conversion20004 Chinese (traditional)TeletextConversion20005 Chinese (traditional)WangConversion20932954 (roughly)JapaneseEUC JPConversion209365479Chinese (simplified)GB 2312Conversion20949, 51949970KoreanWansung (8 bit with ASCII, i. e. EUC KR)Conversion
Юникодпен байланысты кодтар беттері
IDIBM EquivalentDescription12001202, 1203Unicode (ISO 10646 BMP, UTF 16LE). Тек басқарылатын қолданбалар үшін қолжетімді.28598 ISO 8859 8 – Латын/Иврит (көрнекілік тәртібі; 1988 жылғы басылым, яғни ⟨ және ⟩ белгілерізсіз).2010610117 бит IA5 Неміс (DIN 66003).2010710187 бит IA5 Швед (SEN 850200 C).2010810167 бит IA5 Норвегия (NS 4551 2).201273677 бит АҚШ ASCII.202611036T.61 (T.61 8bit).20269?ISO 6937.
Кодты беттерді пайдаланудан туындайтын мәселелер
Microsoft қазіргі заманғы қолданбаларда Юникодты пайдалануды қатты ұсынады, бірақ көптеген қолданбалар немесе деректер файлдары әлі де ескі код парақтарына тәуелді. Бағдарламалар (Юникодқа дейінгі) файлдардың мазмұнын дұрыс көрсету үшін қандай код парағын қолдану керектігін білуі керек. Егер бағдарлама қате код парағын қолданса, мәтін моджибек түрінде көрсетілуі мүмкін. Код парағын пайдалану машиналар арасында әртүрлі болуы мүмкін, сондықтан бір машинада жасалған (Юникодқа дейінгі) файлдар басқа машинада оқылмай қалуы мүмкін. Деректер көбінесе дұрыс код парағымен белгіленбейді немесе белгіленбейді, бұл деректерді оқу үшін дұрыс код парағын анықтауды қиындатады. Бұл Microsoft код парақтары стандарттардан және басқа өндірушілердің іске асыруларынан әртүрлі дәрежеде ерекшеленеді. Бұл барлық өндірушілерге тән мәселе, бірақ біркелкілік болмауы кейбір жағдайларда басқа жүйелермен өзара іс-қимыл жасауды сенімсіз етеді. Код парақтарын пайдалану қолданылуы мүмкін таңбалар жиынтығын шектейді. Қолдау көрсетілмейтін код парағындағы таңбалар сұрақ белгілеріне (?) немесе басқа алмастыру таңбаларына, немесе қарапайым нұсқаға (мысалы, әріптен әріп белгілерін жою) ауыстырылуы мүмкін. Кез келген жағдайда, бастапқы таңба жоғалуы мүмкін.