Домашня » як » Що таке кодування символів Як ANSI і Unicode, і як вони відрізняються?

    Що таке кодування символів Як ANSI і Unicode, і як вони відрізняються?

    ASCII, UTF-8, ISO-8859… Можливо, ви бачили ці дивні псевдоніми плаваючі навколо, але що вони насправді мають на увазі? Читайте далі, як ми пояснюємо, що таке кодування символів і як ці скорочення відносяться до звичайного тексту, який ми бачимо на екрані.

    Фундаментальні будівельні блоки

    Коли ми говоримо про письмову мову, ми говоримо про букви, що є будівельними блоками слів, які потім будують речення, абзаци і так далі. Букви - це символи, які представляють звуки. Коли ви говорите про мову, ви говорите про групи звуків, які об'єднуються, щоб сформувати якийсь сенс. Кожна мовна система має складний набір правил і визначень, які регулюють ці значення. Якщо у вас є слово, це марно, якщо ви не знаєте, з якої мови це, і ви використовуєте його з іншими, які говорять на цій мові.

    (Порівняння скриптів Grantha, Tulu і Malayalam, зображення з Вікіпедії)

    У світі комп'ютерів ми використовуємо термін «характер». Характер є свого роду абстрактним поняттям, що визначається специфічними параметрами, але він є фундаментальною одиницею значення. Латинська "A" не є такою ж, як грецька "альфа" або арабська "alif", тому що вони мають різні контексти - вони з різних мов і мають трохи різні вимови - так що ми можемо сказати, що вони різні символи. Візуальне представлення символу називається «гліфом», а різні набори гліфів називаються шрифтами. Групи символів належать до "набору" або "репертуару".

    Коли ви вводите абзац і змінюєте шрифт, ви не змінюєте фонетичні значення букв, ви змінюєте їх вигляд. Це просто косметика (але не важлива!). Деякі мови, як стародавній єгипетський і китайський, мають ідеограми; вони являють собою цілі ідеї замість звуків, і їх вимова може змінюватися в часі і відстані. Якщо ви заміните одного символу на іншого, ви замінюєте ідею. Це більше, ніж просто зміна букв, вона змінює ідеограму.

    Кодування символів

    (Зображення з Вікіпедії)

    Коли ви вводите щось на клавіатурі або завантажуєте файл, як комп'ютер знає, що відображати? Для цього призначено кодування символів. Текст на вашому комп'ютері не є буквами, це серія парних алфавітно-цифрових значень. Кодування символів діє як ключ, для якого значення відповідають символам, подібно до того, як орфографія диктує, які звуки відповідають яким буквам. Код Морзе - це свого роду кодування символів. Тут пояснюється, як групи довгих і коротких одиниць, такі як звукові сигнали, являють собою символи. У коді Морзе символи - це тільки англійські літери, цифри і повні зупинки. Є багато кодувань символів комп'ютера, які перекладаються на літери, цифри, знаки акценту, знаки пунктуації, міжнародні символи тощо..

    Часто на цю тему використовується термін «кодові сторінки». Це, по суті, кодування символів, яке використовують конкретні компанії, часто з незначними змінами. Наприклад, кодова сторінка Windows 1252 (раніше відома як ANSI 1252) є модифікованою формою ISO-8859-1. Вони в основному використовуються як внутрішня система для посилання на стандартні та модифіковані кодування символів, які є специфічними для тих самих систем. На початку кодування символів було не так важливо, тому що комп'ютери не спілкувалися один з одним. Зі зростанням інтернету до виникнення та створення мереж, що стає звичайним явищем, він стає все більш важливим для нашого повсякденного життя без нас навіть усвідомлення цього.

    Багато різних типів

    (Зображення із sarah sosiak)

    Існує багато різних кодувань символів, і для цього є багато причин. Яке кодування символів, яке ви вирішите використовувати, залежить від ваших потреб. Якщо ви спілкуєтеся російською мовою, має сенс використовувати кодування символів, яке добре підтримує кирилицю. Якщо ви спілкуєтеся по-корейськи, то вам знадобиться те, що добре представляє хангул і ханья. Якщо ви математик, то ви хочете чогось, що має всі наукові і математичні символи, представлені добре, а також грецькі і латинські гліфи. Якщо ви - жартівник, можливо, ви отримаєте користь від перевернутого тексту. І якщо ви хочете, щоб усі ці типи документів були переглянуті будь-якою людиною, ви бажаєте, щоб кодування було досить поширеним і легко доступним.

    Давайте подивимося на деякі з найбільш поширених.

    (Витяг з таблиці ASCII, Зображення з asciitable.com)

    • ASCII - Американський стандартний код для обміну інформацією є одним із старих кодувань символів. Спочатку він був розроблений на основі телеграфних кодів і з часом розвивався, щоб включити більше символів і деяких застарілих недрукованих контрольних символів. Це, напевно, настільки ж базове, як ви можете отримати з точки зору сучасних систем, оскільки воно обмежується латинським алфавітом без акцентованих символів. Його 7-бітне кодування дозволяє використовувати лише 128 символів, тому в світі існує кілька неофіційних варіантів.
    • ISO-8859 - Найбільш широко використовуваною групою кодування символів Міжнародної організації зі стандартизації є номер 8859. Кожне специфічне кодування позначається числом, часто префіксом описового назви, наприклад, ISO-8859-3 (Latin-3), ISO-8859-6 (латинська / арабська). Це надмножина ASCII, що означає, що перші 128 значень у кодуванні такі ж, як ASCII. Це 8-бітний, проте, і дозволяє використовувати 256 символів, тому він згортається звідти і включає в себе набагато більш широкий масив символів, причому кожна специфічна кодування фокусується на іншому наборі критеріїв. Latin-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 версії, яка не використовує позначку порядку байтів, але це не зовсім одностайно. Як бачите, кодування кожного символу має власне використання, контекст, сильні та слабкі сторони. Як кінцевий користувач, вам, мабуть, не доведеться мати справу з цим, але тепер ви можете зробити додатковий крок вперед, якщо ви так виберете.