ASCII, UTF-8, ISO-8859 ... Може да сте видели тези странни монаси, които се носят наоколо, но какво всъщност означават? Прочетете, докато обясняваме какво е кодирането на знаците и как тези акроними се отнасят към обикновения текст, който виждаме на екрана.
Когато говорим за писмения език, ние говорим за буквите, които са градивните елементи на думите, които след това изграждат изречения, абзаци и т.н. Писма са символи, които представляват звуци. Когато говорим за език, говорим за групи от звуци, които се събират, за да формират някакъв смисъл. Всяка езикова система има сложен набор от правила и определения, които управляват тези значения. Ако имате дума, това е безполезно, освен ако не знаете какъв език е от него и го използвате с други, които говорят този език.
(Сравнение на скриптове Grantha, Tulu и Malayalam, Изображение от Wikipedia)
В света на компютрите ние използваме термина "характер". Характерът е нещо като абстрактна концепция, дефинирана от специфични параметри, но тя е основната единица на смисъла. Латинският "А" не е същият като гръцки "алфа" или арабски "alif", защото те имат различни контексти - те са от различни езици и имат леко различаващи се произношения - затова можем да кажем, че те са различни знаци. Визуалното представяне на символа се нарича "глиф", а различни набори от глифи се наричат шрифтове. Групите знаци принадлежат към "набор" или "репертоар".
Когато напишете един параграф и промените шрифта, не променяте фонетичните стойности на буквите, променяте начина, по който изглеждат. Това е просто козметичен (но не маловажен!). Някои езици, като древноегипетския и китайския, имат идеограми; те представляват цели идеи вместо звуци и техните произношения могат да се променят във времето и разстоянието. Ако замените един знак с друг, замествате една идея. Това е нещо повече от промяна на буквите, променя се идеограма.
(Изображение от Wikipedia)
Когато въвеждате нещо на клавиатурата или зареждате файл, как компютърът знае какво да показва? Това е кода на знака. Текстът на вашия компютър всъщност не е буква, а серия от двойки буквено-цифрови стойности. Кодирането на знаците действа като ключ, за който стойностите отговарят на кои знаци, подобно на това как правописът диктува кои звуци съответстват на кои букви. Морс кодът е нещо като кодиране на символи. Тя обяснява как групи от дълги и къси единици, като бипкания, представляват символи. В Morse кода знаците са само английски букви, цифри и пълни спирки. Има много компютърни кодировки, които се трансформират в букви, цифри, акценти, препинателни знаци, международни символи и т.н.
Често по тази тема се използва и терминът "кодови страници". Те са по същество кодови кодове, използвани от конкретни компании, често с леки модификации. Например кодовата страница на Windows 1252 (по-рано известна като ANSI 1252) е модифицирана форма на ISO-8859-1. Те се използват най-вече като вътрешна система, за да се отнасят до стандартни и модифицирани кодиране на символи, които са специфични за едни и същи системи. Наскоро кодирането на знаци не беше толкова важно, защото компютрите не комуникираха помежду си. Тъй като интернет става все по-популярен и мрежата е често срещано явление, то става все по-важно от всекидневния ни живот, без дори да го осъзнаваме.
(Изображение от Сара Сосаяк)
Има много различни кодови знаци там, и има много причини за това. Каква кодировка на кода, която решите да използвате, зависи от това, какви са вашите нужди. Ако общувате на руски език, има смисъл да се използва кодиране на знаци, което поддържа кирилицата добре. Ако комуникирате на корейски, тогава ще искате нещо, което да представя Хангъл и Ханжа добре. Ако сте математик, тогава искате нещо, което има всички научни и математически символи, представени добре, както и гръцки и латински glyphs. Ако сте флиртуващ, може би ще се възползвате от текста с главата надолу. И ако искате всички типове документи да се видят от даден човек, искате кодиране, което е доста обичайно и лесно достъпно.
Нека да разгледаме някои от най-често срещаните.
(Извадка от таблицата ASCII, Изображение от asciitable.com)
(Извадка от тибетски сценарий, Unicode v4, от unicode.org)
Ами ASCII работи за повечето говорещи английски, но не и за много други. По-често ще виждате ISO-8859-1, която работи за повечето западноевропейски езици. Другите версии на ISO-8859 работят за кирилица, арабски, гръцки или други специфични скриптове. Ако обаче искате да показвате няколко скрипта в един и същ документ или на една и съща уеб страница, UTF-8 позволява много по-добра съвместимост. Той също така работи много добре за хора, които използват правилни пунктуационни, математически символи или офроуд символи, като квадратчета и квадратчета за отметка.
(Няколко езика в един документ, Снимка на gujaratsamachar.com)
Има обаче недостатъци за всеки набор. ASCII е ограничен в нейните препинателни знаци, така че не работи невероятно добре за коректно типично редактиране. Някога копие / вмъкни от Word само за да има някаква странна комбинация от глифи? Това е недостатък на ISO-8859, или по-правилно, предполагаемата му оперативна съвместимост с кодови страници, специфични за ОС (гледаме към вас, Microsoft!). Основният недостатък на UTF-8 е липсата на подходяща поддръжка при редактирането и публикуването на приложения. Друг проблем е, че браузърите често не интерпретират и просто показват знака на марката за байт на кодиран с UTF-8 знак. Това води до показване на нежелани глифове. И, разбира се, декларирането на едно кодиране и използването на знаци от друг, без да се декларират / посочват правилно в уеб страницата, затрудняват браузърите да ги изобразяват правилно и търсачките да ги индексират по подходящ начин.
За вашите собствени документи, ръкописи и т.н. можете да използвате всичко, което е необходимо, за да свършите работата. Що се отнася обаче до мрежата, изглежда, че повечето хора се съгласяват да използват версия UTF-8, която не използва марка за поръчка на байт, но това не е напълно единодушно. Както можете да видите, всяко кодиране на знаци има своя собствена употреба, контекст и силни и слаби страни. Като краен потребител вероятно няма да се наложи да се справите с това, но сега можете да направите допълнителната крачка напред, ако изберете това.