Кіріспе

Юникод техникалық стандарты

Юникод үшін стандарттық қысу схемасы (SCSU) – Юникод мәтінін көрсету үшін қажетті байттар санын азайтуға арналған Юникод техникалық стандарты, әсіресе егер мәтінде бір немесе бірнеше тілге тән таңбалар блогынан көбінесе таңбалар қолданылса. Бұл 128–255 диапазонындағы мәндерді 128 таңбалық белгілі бір блоктардағы ығысуларға динамикалық түрде бейнелеу арқылы жүзеге асырылады. Кодтаушының бастапқы жағдайлары ASCII және ISO 8859-1 стандарттарындағы NULL, TAB, CR және LF басқару кодтарын қамтымайтын бар тізбектерді SCSU тізбектері ретінде қарастыруға мүмкіндік береді. Көптеген әріптер Юникод кодтық нүктелерінің тікелей блоктарында орналасқандықтан, кішкентай әріптерді және ASCII тыныш белгілерін немесе негізгі әріптер терезесіне сәйкес келетін тыныш белгілерін пайдаланатын мәтіндерді әр таңбаға бір байттан кодтауға болады (қосымша бастапқы жүктемеден басқа, ол көптеген тілдер үшін көбінесе 1 байтты құрайды), ал қалған тыныш белгілерді символ бойынша 2 байттан кодтауға болады. SCSU сондай-ақ әріптік емес тілдерді өңдеу үшін ішкі түрде UTF-16-ға ауыса алады.

Тарих және қолданылуы

Reuters бастапқыда SCSU-ды, кейіннен Unicode үшін Reuters Compression Scheme ретінде RCSU деп атады. Бастапқыда Unicode консорциумы оны әріптік кодтау деп қарастырды, бірақ 1999 жылы өз шешімін өзгертті: ол әлі де деректерді жіберу кодтау синтаксисі болып саналса да, бірқатар уақыт бойы әртүрлі компрессорлар бірдей мәтін үшін әртүрлі нәтижелер бере алатындықтан, әріптік кодтау емес деп есептелді. Дегенмен, 2004 жылы бұл шешім кері қайтарылды және қазір SCSU қарапайым немесе күрделі әріптік кодтауларға қарағанда, сығымдауды қолданатын әріптік кодтау схемасы болып саналады. Роман Чибора (GNU Unifont авторы) декомпрессорды жазды. IBM-нің декомпрессоры International Components for Unicode құрамында, Java тілінде жазылған компрессормен бірге табылсады. TR6-ға қосымша ретінде қарапайым анықтамалық кодектер қолжетімді. Symbian OS, ұялы телефондар және басқа ұялы құрылғылар үшін жасалған операциялық жүйе, жолдарды сериалдау үшін SCSU-ды пайдаланады. SQL Server 2008 R2, nchar(n) және nvarchar(n) бағандарында сақталған Unicode мәндерін (UCS-2 кодтауындағы жолдардың мәні) сығымдау үшін SCSU-ды қолданады, бұл деректер тіліне байланысты 15%-тан 50%-ға дейін орынды үнемдеуге мүмкіндік береді (ал UTF-8 тек Unicode-тың ASCII жиынтығы үшін 50%-дық қысқартуды қамтамасыз етеді).

Жоспар

Келесі бөлімдер қысылған SCSU ағынының құрылысын қысқаша сипаттайды. Толық сипаттама (декомпрессор сипаттамасына сәйкес) UTS #6 құжатында келтірілген.

Кодтау режімдері

SCSU бір байттық режимде басталады, ол қысылған терезе кодтамасын қолданады. UTF 16BE "Unicode" режиміне және сол режимнен бір байттық режимге ауысу үшін командалар бар.

Терезенің кодталуы

SCSU өзегі 0x80 0xff байттарының мағыналары анықталған терезелерде жатыр. Жасырап жазулар мен тыныш белгілер үшін сегіз статикалық терезе, ал көбірек таңбаларды пайдаланатын жазулар үшін 6 динамикалық терезе (сонымен қатар "жартылай Юникод блогы" терезелері және қосымша жазықтықтарға арналған жеке терезелер) бар. Жасырап жазулардың екеуі де – қарапайым да, динамикалық та – арнайы командалық таңбалармен таңдалады. Ағымдағы блокқа сыймайтын жеке таңбалар үшін, дәйектеме таңбаларын пайдалануға арналған командалық таңбалар қарастырылған.

Жалпы мақсаттағы жай мәтінді қысылу жүйелерімен салыстыру

UTF-16 немесе UTF-8 мәтіні, Unicode-қа дейінгі кодтамалардағы өзіне теңдес мәтінге қарағанда көбірек орын алатындықтан, бұл мәселені азайту үшін SCSU сияқты сығыстыруды қолдануға болады. Бірақ, жалпы мақсаттағы сығыстырғыштармен салыстырғанда, SCSU-ды пайдалану міндетті түрде артықшылық бермейді. Бұл, WHATWG HTML стандарттарына да қатысты, себебі HTML ASCII-ге үйлесімді емес кодтамалармен ескере отырып жасалмаған. Бұрын браузерлердің мұндай кодтамаларды нашар өңдеуі салдарынан сайттар арасындағы скрипттерге қатысты осалдықтар анықталған.