Кіріспе
Шығыс Азия таңбалық кодтамалар жүйесі (System of East Asian character encodings) – кеңейтілген Unix коды (EUC) – негізінен жапон, корей және оңайлатылған қытай (символдары) үшін қолданылатын көп байттық таңбалық кодтама жүйесі. EUC кодтарының ең көп қолданылатын түрі – ISO/IEC 646 стандартына сәйкес кодталған таңбалар жиынтығына жататын таңба (мысалы, ASCII) бір байтпен, ал 94×94 кодталған таңбалар жиынтығына жататын таңба (мысалы, GB 2312) екі байтпен бейнеленеді. EUC CN GB 2312 және EUC KR формалары осындай екі байттық EUC кодтарының мысалдары. EUC JP үш байтқа дейін таңбаларды қамтиды, соның ішінде бастапқы таңба, ал EUC TW-дегі бір таңба төрт байтқа дейін алады. Қазіргі заманғы қолданбалар көбінесе UTF-8 қолданады, ол EUC кодтарының барлық глифтерін және одан да көп нәрсені қолдайды, сондай-ақ жалпы алғанда, өндірушілердің ауытқулары мен қателіктері аз. Дегенмен, EUC әлі де кең таралған, әсіресе Оңтүстік Кореяда EUC KR.
Extended Unix Code (EUC) is a multibyte character encoding system used primarily for Japanese, Korean, and simplified Chinese (characters). The most commonly used EUC codes are variable length encodings with a character belonging to an ISO/IEC 646 compliant coded character set (such as ASCII) taking one byte, and a character belonging to a 94×94 coded character set (such as GB 2312) represented in two bytes. The EUC CN form of GB 2312 and EUC KR are examples of such two byte EUC codes. EUC JP includes characters represented by up to three bytes, including an initial , whereas a single character in EUC TW can take up to four bytes. Modern applications are more likely to use UTF 8, which supports all of the glyphs of the EUC codes, and more, and is generally more portable with fewer vendor deviations and errors. EUC is however still very popular, especially EUC KR for South Korea.
Белгілі бір ұзындығы бар формат
Жоғарыда сипатталған ISO 2022 негізіндегі өзгермелі ұзындықтағы кодтау кейде EUC қапталған форматы деп аталады, бұл кодтау форматы көбінесе EUC деп белгіленеді. Дегенмен, EUC деректерін ішкі өңдеуде EUC толық екі байттық форматы деп аталатын белгілі ұзындықтағы түрлендіру форматы қолданылуы мүмкін. Осыған байланысты: HTML5 пайдаланатын WHATWG кодтау стандартына тек қана қапталған формат кіреді.
EUC-CN
EUC CN, EUC CN сияқты GB 2312 кодтауын қолданады, бірақ EUC құрылымынан өзгешелік танытып, жетекші байт диапазонын 0x8C-ге дейін кеңейтеді, 0x8CE0-ден 0x8CFE-ге дейін 31 IBM таңдаған символдарды қосады және 0x8D-ден 0xA0-ға дейін жетекші байттары бар 1880 пайдаланушы анықтаған символдарды қосады. IBM кодтық беті 1383 (CCSID 1383) бір байттық кодтық бет 367 және екі байттық кодтық бет 1382 (CPGID 1382, CCSID 1382 ретінде) құрайды, ол EUC құрылымына сәйкес келеді, бірақ 0xFEE0-ден 0xFEFE-ге дейін 31 IBM таңдаған символдарды қосады және GB 2312 қолданбаған орындарға араластырылған 1360 пайдаланушы анықтаған символдарды ғана қамтиды. Таза EUC CN кодтық беті үшін CCSID 5479 балама ретінде қолданылады: ол CCSID 9574 екі байттық жиынтығы ретінде қолданылады, ол CPGID 1382 қолданады, бірақ IBM таңдаған және пайдаланушы анықтаған символдарды қоспайды.
GBK және GB 18030
GBK – GB 2312-нің кеңейтілген нұсқасы болып табылады. Ол негізінен Unicode 1.1-ден алынған CJK таңбаларының кең ауқымын, соның ішінде дәстүрлі қытай және жапон тілінде ғана қолданылатын таңбаларды бейнелеуге қабілетті EUC CN кодтамасының кеңейтілген түрін анықтайды. Дегенмен, бұл нағыз EUC коды емес, себебі ASCII байттары қосымша байттар ретінде (ал C1 байттары, тек бір ауысқанға ғана шектелмейтін, жетекші немесе қосымша байттар ретінде пайда болуы мүмкін), себебі үлкен кодтау кеңістігі қажет. GBK-ның нұсқалары Windows кодтық беті 936 (жеңілдетілген қытай тілі үшін Microsoft Windows кодтық беті) және IBM кодтық беті 1386 арқылы іске асырылады. Unicode негізіндегі GB 18030 таңба кодтамасы GBK-ның кеңейтілген нұсқасын анықтайды, ол Unicode-тің барлық таңбаларын кодтауға қабілетті. Алайда, GB 18030 кодымен кодталған Unicode – өте өзгермелі ұзындықтағы кодтау, әрбір таңбаға 4 байтқа дейін жұмсалуы мүмкін, себебі одан да үлкен кодтау кеңістігі қажет. GBK-ның кеңейтілген нұсқасы болғандықтан, ол EUC CN-нің жоғары жиынтығы болып табылады, бірақ өзі EUC коды емес. Unicode кодтамасы болғандықтан, оның таңба жинағы UTF-8 сияқты басқа Unicode түрлендіру форматтарымен бірдей.
Mac OS кітайша оңайлатылған
EUC механизмінен ауытқатын басқа EUC CN нұсқаларына Mac OS қытай тілінің жеңілдетілген скрипті (Code page 10008 немесе x mac chinesesimp деп аталады) жатады. Ол U әрпінің үстіндегі умляут белгісі (ü), екі арнайы шрифт өлшемдері, үздірілмейтін бос орын, авторлық құқық белгісі (©), тауарлық белгі (™) және эллипсис (…) үшін 0x80, 0x81, 0x82, 0xA0, 0xFD, 0xFE және 0xFF байттарын пайдаланады. Бұл, бір байттық символ ретінде қарастырылатын нәрсе мен екі байттық символдың бірінші байты арасындағы айырмашылықты EUC (онда 0xFD және 0xFE жетекші байттар ретінде анықталған) және GBK (онда 0x81, 0x82, 0xFD және 0xFE жетекші байттар ретінде анықталған) жүйелерінен өзгешелейді. 0xA0, 0xFD, 0xFE және 0xFF байттарының осылай қолданылуы Apple-дің Shift JIS нұсқасына сәйкес келеді. Жетекші байт диапазонындағы осы өзгерістерден басқа, Mac OS қытай тілінің жеңілдетілген нұсқасының екі байттық бөлігінің тағы бір ерекшелігі – 6-шы және 8-ші қатарларда орналасқан GB 2312 80 базалық жинағына екі қосымшаның енгізілуі. Екі қосымша да GB 18030 (GB 2312-нің ізбасары) құрамына кіреді.
Бірыңғай хангуль коды
EUC KR-дің кең таралған кеңейтімі Бірыңғай Хангуль коды (немесе ) болып табылады, ол Microsoft Windows жүйесіндегі стандартты корейлік код беті. Microsoft оны 949 нөмірлі код бет ретінде, ал IBM 1261 немесе 1363 ретінде белгілейді. IBM-нің 949 код беті EUC KR-дің басқа, байланыссыз кеңейтімі. Бірыңғай Хангуль коды EUC KR-ді EUC құрылымына сәйкес келмейтін кодтарды пайдаланып, қосымша буын блоктарын қосу арқылы кеңейтеді, осылайша Johab және Unicode-та бар құрама буын блоктарының толық қамтылуын қамтамасыз етеді. HTML5 пайдаланатын W3C/WHATWG кодировка стандарты EUC KR анықтамасына Бірыңғай Хангуль кодының кеңейтімдерін қосады.
Mac OS корей тілі (HangulTalk)
EUC KR-ді кіші жиынтық ретінде қамтитын басқа кодтамаларға Mac OS корейлік скрипті (Code page 10003 немесе x mac korean деп аталады) жатады. Осы таңбалардың көпшілігінің нақты Unicode сәйкестігі жоқ, ал Apple бағдарламалық жасақтамасы оларды әртүрлі жолдармен біріктірілген тізбектерге, айналым үшін модификатор ретінде жеке пайдалану таңбасын қосып жуықтап келтіруге немесе жеке пайдалану таңбаларына бейімдейді. Apple EUC KR жазықтығынан тыс бір байттық кодтарды қосымша таңбалар үшін де пайдаланады: қажетті бос орын үшін 0x80, вон белгісі үшін 0x81 (₩), ен тире үшін 0x82 (–), авторлық құқық белгісі үшін 0x83 (©), кең асты сызу үшін 0x84 (_) және эллипс үшін 0xFF (…). Стандарттың жаңа нұсқалары EUC ұсынысын Бірыңғай Хангуль кодексайынша, EUC емес екі байттық кодтарды қолдану арқылы кеңейтеді.
EUC-TH
ISO/IEC 8859 сериясы сияқты кейбір бір байттық кодтамалар техникалық тұрғыдан EUC құрылымына сәйкес болғанымен, олар көбінесе EUC деп белгіленбейді. Дегенмен, Solaris жүйесінде TIS 620 үшін таңба ретінде қолданылады.