Universal kodlangan belgilar to'plami - Universal Coded Character Set

Universal kodlangan belgilar to'plami
Taxalluslar (lar)UCS, Unicode
Til (lar)Xalqaro
StandartISO / IEC10646
Kodlash formatlariUTF-8, UTF-16, GB18030
Kamroq tarqalgan: UTF-32, BOCU, SCSU, UTF-7
OldingiISO 8859, ISO 2022, boshqalar.

The Universal kodlangan belgilar to'plami (UCS) standart to'plamdir belgilar bilan belgilanadi Xalqaro standart ISO /IEC  10646, Axborot texnologiyalari - Umumjahon kodlangan belgilar to'plami (UCS) (ushbu standartga qo'shimcha tuzatishlar), bu ko'pchilikning asosi hisoblanadi belgilar kodlashlari, ilgari taqdim etilmagan yozuv tizimlarining belgilarini qo'shganda yaxshilanadi.

UCS-da foydalanish / ajratish uchun 1,1 milliondan ortiq mumkin bo'lgan kod punktlari mavjud, ammo faqat birinchi 65,536, ya'ni Asosiy ko'p tilli samolyot (BMP), 2000 yildan oldin umumiy foydalanishga kirishgan edi. Bu vaziyat o'zgargandan so'ng boshlandi Xitoy Xalq Respublikasi (XXR) 2006 yilda o'z yurisdiksiyasida sotiladigan barcha dasturlarni qo'llab-quvvatlashi kerak degan qaror chiqardi GB 18030. BMP-dan tashqariga chiqish uchun XXRda sotish uchun mo'ljallangan dasturiy ta'minot zarur edi.

Tizim ataylab BMP da ham belgilarga berilmagan ko'plab kod nuqtalarini qoldiradi. Buni kelajakda kengaytirishga imkon berish yoki boshqa kodlash shakllari bilan ziddiyatlarni minimallashtirish uchun qiladi.

Shakllarni kodlash

ISO / IEC 10646 bir nechta belgini belgilaydi kodlash shakllari Universal kodlangan belgilar to'plami uchun. Eng sodda, UCS-2,[Izoh 1] bitta ishlatadi kod qiymati (raqam sifatida aniqlanadi, ulardan bittasi yoki bir nechtasi umuman kod nuqtasini ifodalaydi, lekin UCS-2 uchun bu kod kodini ifodalovchi bitta kod qiymati) har bir belgi uchun 0 dan 65,535 gacha va to'liq ikkitasiga imkon beradi bayt (bittasi 16-bit so'z) ushbu qiymatni ifodalash uchun. UCS-2 shu bilan BMP-da har bir belgini ifodalovchi har bir kod nuqtasining ikkilik ko'rinishiga ruxsat beradi. UCS-2 BMP dan tashqaridagi kod nuqtalarini aks ettira olmaydi.

UCSning asl nashriga birinchi o'zgartirish kiritildi UTF-16, BMP tashqarisidagi kod nuqtalarini ko'rsatish uchun UCS-2 kengaytmasi. BMP ning S (Maxsus) zonasidagi bir qator kod nuqtalari belgilarga tayinlanmagan bo'lib qoladi. UCS-2 ushbu kod punktlari uchun kod qiymatlaridan foydalanishni taqiqlaydi, ammo UTF-16 ularni juftlikda ishlatishga imkon beradi. Unicode shuningdek UTF-16 ni qabul qildi, ammo Unicode terminologiyasida yuqori yarim mintaqa elementlari "yuqori surrogatlar" ga va yarim yarim zonalar elementlari "past surrogatlar" ga aylanadi.[tushuntirish kerak ]

Boshqa kodlash, UCS-4, ning bitta belgisini kodlash uchun to'rt baytdan (jami 32 bit) foydalaniladi kod maydoni. Unicode kod maydonini 10FFFF yuqori chegarasi bilan cheklasa ham. ISO / IEC 10646 standartida kelgusida barcha belgilar belgilanishi 0x7FFFFFFF oralig'ida bo'lishini ta'kidlagan.olti burchak).[iqtibos kerak ] UCS-4 har bir qiymatni to'rt bayt (bitta 32 bitli so'z) sifatida ko'rsatishga imkon beradi. UCS-4 shu bilan BMP dan tashqaridagi kodlarni ham o'z ichiga olgan UCSdagi har bir kod punktining ikkilik ko'rinishiga ruxsat beradi. UCS-2-da bo'lgani kabi, har bir kodlangan belgi baytlarda belgilangan uzunlikka ega, bu esa uni manipulyatsiya qilishni osonlashtiradi, lekin, albatta, UCS-2 ga qaraganda ikki baravar ko'proq saqlashni talab qiladi.

Hozirgi vaqtda dominant UCS kodlash mavjud UTF-8, bu o'zgaruvchan kenglikdagi kodlash bilan orqaga qarab muvofiqligi uchun mo'ljallangan ASCII va UTF-16-da endianness va bayt tartibidagi belgilarning asoratlariga yo'l qo'ymaslik uchun UTF-32. 93% dan ortig'i[1] barcha veb-sahifalar UTF-8da kodlangan. Internet Engineering Task Force (IETF) barcha Internet protokollarini belgilar ma'lumotlari uchun ishlatiladigan kodlashni aniqlashni talab qiladi va qo'llab-quvvatlanadigan belgilar kodlashlarida UTF-8 bo'lishi kerak. Internet-pochta konsortsiumi (IMC) barcha elektron pochta dasturlarini UTF-8 yordamida pochta xabarlarini namoyish qilish va yaratishni tavsiya qiladi. Bundan tashqari, operatsion tizimlarda, dasturlash tillarida, API-larda va dasturiy ta'minotda standart belgilar kodi sifatida tobora ko'proq foydalanilmoqda.

Shuningdek qarang Unicode kodlashlarini taqqoslash.

Tarix

The Xalqaro standartlashtirish tashkiloti (ISO) 1989 yilda universal belgilar to'plamini tuzishga kirishdi va 1990 yilda ISO 10646 loyihasini nashr etdi. Xyu Makgregor Ross uning asosiy me'morlaridan biri bo'lgan. Ushbu standart amaldagi standartdan sezilarli darajada farq qiladi. Bu quyidagilarni aniqladi:

  • 128 guruh
  • 256 samolyot
  • 256 qator
  • 256 hujayra,

aftidan jami 2 147 483 648 ta belgi uchun, lekin aslida standart faqat 679 477 248 ta belgini kodlashi mumkin, chunki siyosat bayt qiymatlarini taqiqlagan C0 va C1 boshqaruv kodlari (0x00 dan 0x1F gacha va 0x80 dan 0x9F gacha, ichida o'n oltinchi guruh), tekislik, qator va katakchani ko'rsatadigan to'rt baytning istalgan birida). Masalan, A lotin bosh harfi 0x20 guruhda, 0x20 tekislikda, 0x20 qatorda, 0x41 katakda joylashgan.

Ushbu dastlabki ISO 10646 standartining belgilarini uchta usuldan biri bilan kodlash mumkin:

  1. UCS-4, har bir belgi uchun to'rt bayt, bu barcha belgilarni oddiy kodlashni ta'minlaydi;
  2. UCS-2, har bir belgi uchun ikki bayt, birinchi tekislik kodini 0x20, asosiy ko'p tilli tekislikni o'z ichiga olgan dastlabki 36864 kodepinatni, to'g'ridan-to'g'ri va boshqa tekislik va guruhlarni o'z ichiga olgan ISO 2022 qochish ketma-ketliklari;
  3. UTF-1, bu barcha belgilarni turli uzunlikdagi baytlar ketma-ketligida kodlaydi (1 dan 5 baytgacha, ularning har birida boshqaruv kodlari mavjud emas).

Shuning uchun 1990 yilda universal belgilar to'plami uchun ikkita tashabbus mavjud edi: Unicode, har bir belgi uchun 16 bit (65 536 ta belgi bo'lishi mumkin) va ISO 10646. Dasturiy ta'minot ishlab chiqaruvchi kompaniyalar ISO standartining murakkabligi va hajmi talabini qabul qilishdan bosh tortdilar va bir qator ISO milliy organlarini unga qarshi ovoz berishga ishontirishga muvaffaq bo'lishdi.[iqtibos kerak ] ISO standartlashtiruvchilari standartni hozirgi holatida qo'llab-quvvatlashga qodir emasliklarini angladilar va o'z standartlarini Unicode bilan birlashtirish bo'yicha muzokaralar olib borishdi. Ikki o'zgarish yuz berdi: belgilarga qo'yilgan cheklov bekor qilindi (boshqaruv kodi qiymatlarini taqiqlash), shuning uchun ajratish uchun 0x0000101F kabi kod nuqtalari ochildi; va asosiy ko'p tilli samolyot repertuarini Unicode bilan sinxronlashtirish.

Shu bilan birga, vaqt o'tishi bilan vaziyat Unicode standartida o'zgardi: 65.536 ta belgi yetarlicha ko'rinmadi va 2.0 versiyasi va undan keyingi standart 1.112.064 kod punktlarini kodlashni qo'llab-quvvatladi 17 ta samolyot yordamida UTF-16 surrogat mexanizmi. Shu sababli, ISO 10646 UTF-16 tomonidan kodlanishi mumkin bo'lgan ko'p sonli belgini o'z ichiga olgan va bundan ortiq bo'lmagan, ya'ni 679 milliondan oshiq belgining o'rniga milliondan ozroq belgini o'z ichiga olgan. ISO 10646 ning UCS-4 kodlashi UTF-16 diapazoni va nomi ostida cheklov bilan Unicode standartiga kiritilgan. UTF-32, garchi u tashqi dasturlarning tashqi ma'lumotlaridan deyarli foydalanmasa ham.

Rob Pike va Ken Tompson, ning dizaynerlari 9-reja operatsion tizim, yangi, tezkor va yaxshi ishlab chiqilgan aralash kenglikdagi kodlashni ishlab chiqdi, u chaqirila boshladi UTF-8,[2]hozirda eng mashhur UCS kodlash.

Unicode-dan farqlar

ISO 10646 va Unicode bir xilga ega repertuar va raqamlar - bir xil raqamlarga ega bo'lgan bir xil belgilar ikkala standartda ham mavjud, garchi Unicode yangi versiyalarini chiqaradi va tez-tez yangi belgilar qo'shadi. Unicode ISO 10646 doirasidan tashqarida qoidalar va texnik xususiyatlarga ega. ISO 10646 - bu oddiy belgilar xaritasi, oldingi standartlarning kengayishi. ISO 8859. Aksincha, Unicode qoidalarini qo'shadi taqqoslash, shakllarni normallashtirish, va ikki tomonlama algoritm uchun o'ngdan chapga arab va ibroniy kabi yozuvlar. Platformalar orasidagi o'zaro muvofiqlik uchun, ayniqsa ikki tomonlama skriptlardan foydalanilsa, ISO 10646 ni qo'llab-quvvatlash etarli emas; Unicode amalga oshirilishi kerak.

Ushbu qoidalar va algoritmlarni qo'llab-quvvatlash uchun Unicode ko'plarni qo'shadi xususiyatlari to'plamdagi har bir belgiga, masalan, belgining standart ikki tomonlama sinfini belgilaydigan xususiyatlar va belgining boshqa belgilar bilan qanday birikishini aniqlash uchun xususiyatlar. Agar belgi Evropaning "8" raqami yoki "¼" vulgar fraktsiyasi kabi raqamli qiymatni ifodalasa, u son ham belgining xususiyati sifatida qo'shiladi. Unicode ushbu xususiyatlarni tillarning aralashmasi bilan o'zaro aloqador matn bilan ishlashni qo'llab-quvvatlashga qaratilgan.

Ba'zi ilovalar ISO 10646 belgilarini qo'llab-quvvatlaydi, ammo Unicode-ni to'liq qo'llab-quvvatlamaydi. Shunday dasturlardan biri, Xterm, bitta-bitta belgidan glifgacha xaritalashga ega bo'lgan barcha ISO 10646 belgilarini to'g'ri ko'rsatishi mumkin[tushuntirish kerak ] va bitta yo'nalish. U ba'zi birlashtiruvchi belgilarni oddiy overstriking usullari bilan boshqarishi mumkin, ammo ibroniycha (ikki tomonlama) ko'rsatolmaydi, Devanagari (bitta belgi ko'plab gliflarga) yoki arabcha (ikkala xususiyat). Ko'pchilik GUI dasturlarda bunday skriptlarni boshqaradigan standart OS matnli rasm chizish tartib-qoidalaridan foydalaniladi, ammo dasturlarning o'zi ularni har doim ham to'g'ri ishlamaydi.

Umumjahon kodlangan belgilar to'plamiga murojaat qilish

ISO 10646, ISO / IEC 10646 standartlari oilasi uchun umumiy, norasmiy iqtibos, ko'pgina nasrlarda qabul qilinadi. Va bu alohida standart bo'lsa ham, atama Unicode UCS-ni muhokama qilishda xuddi shunday tez-tez, norasmiy ravishda ishlatiladi. Shu bilan birga, UCS-ni nashr sifatida ko'rsatadigan har qanday me'yoriy nashrlar nashr etilgan yilni shaklda ko'rsatishi kerak ISO / IEC 10646: {yil}, masalan: ISO / IEC 10646: 2014.

Unicode bilan munosabatlar

1991 yildan beri Unicode konsortsiumi va ISO rivojlangan Unicode standarti ("Unicode") va ISO / IEC 10646 tandemda. Unicode Version 2.0 ning repertuari, belgilar nomlari va kod punktlari ISO / IEC 10646-1: 1993 standartlariga to'liq mos keladi, uning birinchi ettita e'lon qilingan o'zgartirishlari bilan. 2000 yil fevral oyida Unicode 3.0 nashr etilgandan so'ng, mos keladigan yangi va yangilangan belgilar UCS ga ISO / IEC 10646-1: 2000 orqali kiritilgan. 2003 yilda ISO / IEC 10646 ning 1 va 2 qismlari bitta qismga birlashtirildi, shu vaqtdan boshlab Unicode standarti bilan taxminiy sinxronlashda standartga belgilar qo'shadigan bir qator tuzatishlar mavjud.

  • ISO / IEC 10646-1: 1993 = Unicode 1.1
  • ISO / IEC 10646-1: 1993 va 5 dan 7 gacha bo'lgan o'zgartirishlar = Unicode 2.0
  • ISO / IEC 10646-1: 1993 va 5 dan 7 gacha bo'lgan o'zgartirishlar = Unicode 2.1 bundan mustasno Evro belgisi va Ob'ektni almashtirish belgisi, 18-tuzatishga kiritilgan
  • ISO / IEC 10646-1: 2000 = Unicode 3.0
  • ISO / IEC 10646-1: 2000 va ISO / IEC 10646-2: 2001 = Unicode 3.1
  • ISO / IEC 10646-1: 2000 plyus 1-o'zgartirish va ISO / IEC 10646-2: 2001 = Unicode 3.2
  • ISO / IEC 10646: 2003 = Unicode 4.0
  • ISO / IEC 10646: 2003 plyus 1-o'zgartirish = Unicode 4.1
  • ISO / IEC 10646: 2003 va 1 dan 2 gacha tuzatishlar = Unicode 5.0 3-tuzatishga kiritilgan Devanagari harflari GGA, JJA, DDDA va BBA bundan mustasno
  • ISO / IEC 10646: 2003 plyus 1 dan 4 gacha tuzatishlar = Unicode 5.1
  • ISO / IEC 10646: 2003 plyus 1 dan 6 gacha tuzatishlar = Unicode 5.2
  • ISO / IEC 10646: 2003 plyus 1 dan 8 gacha tuzatishlar = ISO / IEC 10646: 2011 = Unicode 6.0 bundan mustasno Hind rupisi belgisi
  • ISO / IEC 10646: 2012 = Unicode 6.1
  • ISO / IEC 10646: 2012 = Unicode 6.2 bundan mustasno Turk lirasi belgisi, bu 1-tuzatishga kiritilgan
  • ISO / IEC 10646: 2012 = Unicode 6.3 bundan mustasno Turk lirasi belgisi 1-tuzatishga kiritilgan beshta ikki tomonlama boshqaruvchi belgilar (arabcha harflar belgisi, chapdan o'ngga izolyatsiya, o'ngdan chapga izolyatsiya, birinchi kuchli izolyatsiya, pop yo'nalishdagi izolyatsiya).
  • ISO / IEC 10646: 2012 plyus 1 va 2-o'zgarishlar = Unicode 7.0 bundan mustasno Rubl belgisi
  • ISO / IEC 10646: 2014 plyus 1-o'zgartirish = Unicode 8.0 bundan mustasno Lari belgisi, to'qqizta CJK birlashtirilgan ideograflar va 41 ta emoji belgilar
  • ISO / IEC 10646: 2014 plyus 1 va 2-o'zgarishlar = Unicode 9.0 Adlam, Newa, Yaponiya televizion ramzlari va 74 emoji va ramzlar bundan mustasno
  • ISO / IEC 10646: 2017 = Unicode 10.0 285 bundan mustasno Xentaygana belgilar, Zanabazar maydonidagi 3 ta belgi va 56 ta emoji belgisi

Shuningdek qarang

Izohlar

  1. ^ Qarang UTF-16 UCS-2-ni batafsilroq muhokama qilish uchun.

Adabiyotlar

  1. ^ "Belgilar kodlashidan foydalanish bo'yicha so'rov reyting bo'yicha ajratilgan". w3techs.com. Olingan 2019-04-01.
  2. ^ Payk, Rob (2003-04-03). "UTF-8 tarixi". Arxivlandi asl nusxasidan 2016-05-23.

Tashqi havolalar