If-Koubou

Какви са кодовете на кодовете като ANSI и Unicode и как се различават?

Какви са кодовете на кодовете като ANSI и Unicode и как се различават? (Как да)

ASCII, UTF-8, ISO-8859 ... Може да сте видели тези странни монаси, които се носят наоколо, но какво всъщност означават? Прочетете, докато обясняваме какво е кодирането на знаците и как тези акроними се отнасят към обикновения текст, който виждаме на екрана.

Основни строителни блокове

Когато говорим за писмения език, ние говорим за буквите, които са градивните елементи на думите, които след това изграждат изречения, абзаци и т.н. Писма са символи, които представляват звуци. Когато говорим за език, говорим за групи от звуци, които се събират, за да формират някакъв смисъл. Всяка езикова система има сложен набор от правила и определения, които управляват тези значения. Ако имате дума, това е безполезно, освен ако не знаете какъв език е от него и го използвате с други, които говорят този език.

(Сравнение на скриптове Grantha, Tulu и Malayalam, Изображение от Wikipedia)

В света на компютрите ние използваме термина "характер". Характерът е нещо като абстрактна концепция, дефинирана от специфични параметри, но тя е основната единица на смисъла. Латинският "А" не е същият като гръцки "алфа" или арабски "alif", защото те имат различни контексти - те са от различни езици и имат леко различаващи се произношения - затова можем да кажем, че те са различни знаци. Визуалното представяне на символа се нарича "глиф", а различни набори от глифи се наричат ​​шрифтове. Групите знаци принадлежат към "набор" или "репертоар".

Когато напишете един параграф и промените шрифта, не променяте фонетичните стойности на буквите, променяте начина, по който изглеждат. Това е просто козметичен (но не маловажен!). Някои езици, като древноегипетския и китайския, имат идеограми; те представляват цели идеи вместо звуци и техните произношения могат да се променят във времето и разстоянието. Ако замените един знак с друг, замествате една идея. Това е нещо повече от промяна на буквите, променя се идеограма.

Кодиране на знаци

(Изображение от Wikipedia)

Когато въвеждате нещо на клавиатурата или зареждате файл, как компютърът знае какво да показва? Това е кода на знака. Текстът на вашия компютър всъщност не е буква, а серия от двойки буквено-цифрови стойности. Кодирането на знаците действа като ключ, за който стойностите отговарят на кои знаци, подобно на това как правописът диктува кои звуци съответстват на кои букви. Морс кодът е нещо като кодиране на символи. Тя обяснява как групи от дълги и къси единици, като бипкания, представляват символи. В Morse кода знаците са само английски букви, цифри и пълни спирки. Има много компютърни кодировки, които се трансформират в букви, цифри, акценти, препинателни знаци, международни символи и т.н.

Често по тази тема се използва и терминът "кодови страници". Те са по същество кодови кодове, използвани от конкретни компании, често с леки модификации. Например кодовата страница на Windows 1252 (по-рано известна като ANSI 1252) е модифицирана форма на ISO-8859-1. Те се използват най-вече като вътрешна система, за да се отнасят до стандартни и модифицирани кодиране на символи, които са специфични за едни и същи системи. Наскоро кодирането на знаци не беше толкова важно, защото компютрите не комуникираха помежду си. Тъй като интернет става все по-популярен и мрежата е често срещано явление, то става все по-важно от всекидневния ни живот, без дори да го осъзнаваме.

Много различни видове

(Изображение от Сара Сосаяк)

Има много различни кодови знаци там, и има много причини за това. Каква кодировка на кода, която решите да използвате, зависи от това, какви са вашите нужди. Ако общувате на руски език, има смисъл да се използва кодиране на знаци, което поддържа кирилицата добре. Ако комуникирате на корейски, тогава ще искате нещо, което да представя Хангъл и Ханжа добре. Ако сте математик, тогава искате нещо, което има всички научни и математически символи, представени добре, както и гръцки и латински glyphs. Ако сте флиртуващ, може би ще се възползвате от текста с главата надолу. И ако искате всички типове документи да се видят от даден човек, искате кодиране, което е доста обичайно и лесно достъпно.

Нека да разгледаме някои от най-често срещаните.

(Извадка от таблицата ASCII, Изображение от asciitable.com)

  • ASCII - Американският стандартен код за обмен на информация е един от по-старите кодирания на символите. Първоначално е създадена на базата на телеграфни кодове и еволюира във времето, за да включва повече символи и някои вече остарели непечатни контролни символи. Това вероятно е толкова основно, колкото можете да получите по отношение на съвременните системи, тъй като е ограничено до латинската азбука без акцентирани знаци. Неговото 7-битово кодиране позволява само 128 символа, поради което в света има няколко неофициални варианта.
  • ISO-8859 - Най-широко използваната група кодиране на символи на Международната организация по стандартизация е номер 8859. Всяко специфично кодиране се обозначава с число, което често е предварително обозначено с описателно означение, напр. ISO-8859-3 (латински-3), ISO-8859-6 (латински / арабски). Това е надмножество на ASCII, което означава, че първите 128 стойности в кодирането са същите като ASCII. Това обаче е 8-битова и позволява 256 знака, така че се изгражда от там и включва много по-широк набор от знаци, като всяко специфично кодиране се съсредоточава върху различен набор от критерии. Латинка-1 включва набор от букви и символи с ударение, но по-късно е заменен с ревизиран набор, наречен Latin-9, който включва актуализирани символи като символа на еврото.

(Извадка от тибетски сценарий, Unicode v4, от unicode.org)

  • Unicode - Този стандарт за кодиране цели универсалност. Понастоящем тя включва 93 скрипта, организирани в няколко блока, с много повече в произведенията. Unicode работи по различен начин от другите набори от символи, тъй като вместо директно кодиране на глиф, всяка стойност се насочва допълнително към "кодова точка". Това са шестнадесетични стойности, които съответстват на символи, но самите глифове се предоставят поотделно от програмата , като вашия уеб браузър. Тези кодови точки обикновено се изобразяват, както следва: U + 0040 (което се превежда на "@"). Специфичните кодировки съгласно стандарта Unicode са UTF-8 и UTF-16. UTF-8 се опитва да позволи максимална съвместимост с ASCII. Това е 8-битова, но позволява всички знаци чрез заместващ механизъм и множество двойки от стойности за един знак. UTF-16 канавки съчетават съвършена ASCII съвместимост за по-пълна 16-битова съвместимост със стандарта.
  • ISO-10646 - Това не е действително кодиране, а само набор от символи от Unicode, който е стандартизиран от ISO. Това е най-важното, защото това е характерният репертоар, използван от HTML. Някои от по-разширените функции, предоставени от Unicode, които позволяват сортиране и отдясно наляво, заедно със скриптове отляво надясно, липсват. Все пак, той работи много добре за използване в интернет, тъй като позволява използването на голямо разнообразие от скриптове и позволява на браузъра да интерпретира символите. Това прави локализацията малко по-лесна.

Какво кодиране трябва да използвам?

Ами ASCII работи за повечето говорещи английски, но не и за много други. По-често ще виждате ISO-8859-1, която работи за повечето западноевропейски езици. Другите версии на ISO-8859 работят за кирилица, арабски, гръцки или други специфични скриптове. Ако обаче искате да показвате няколко скрипта в един и същ документ или на една и съща уеб страница, UTF-8 позволява много по-добра съвместимост. Той също така работи много добре за хора, които използват правилни пунктуационни, математически символи или офроуд символи, като квадратчета и квадратчета за отметка.

(Няколко езика в един документ, Снимка на gujaratsamachar.com)

Има обаче недостатъци за всеки набор. ASCII е ограничен в нейните препинателни знаци, така че не работи невероятно добре за коректно типично редактиране. Някога копие / вмъкни от Word само за да има някаква странна комбинация от глифи? Това е недостатък на ISO-8859, или по-правилно, предполагаемата му оперативна съвместимост с кодови страници, специфични за ОС (гледаме към вас, Microsoft!). Основният недостатък на UTF-8 е липсата на подходяща поддръжка при редактирането и публикуването на приложения. Друг проблем е, че браузърите често не интерпретират и просто показват знака на марката за байт на кодиран с UTF-8 знак. Това води до показване на нежелани глифове. И, разбира се, декларирането на едно кодиране и използването на знаци от друг, без да се декларират / посочват правилно в уеб страницата, затрудняват браузърите да ги изобразяват правилно и търсачките да ги индексират по подходящ начин.

За вашите собствени документи, ръкописи и т.н. можете да използвате всичко, което е необходимо, за да свършите работата. Що се отнася обаче до мрежата, изглежда, че повечето хора се съгласяват да използват версия UTF-8, която не използва марка за поръчка на байт, но това не е напълно единодушно. Както можете да видите, всяко кодиране на знаци има своя собствена употреба, контекст и силни и слаби страни. Като краен потребител вероятно няма да се наложи да се справите с това, но сега можете да направите допълнителната крачка напред, ако изберете това.