Проблема розрізнення зовні схожих цифр і букв.
Іноді необхідно додати іконку в ваш дизайн, але вам не хочеться вставляти додаткові зображення або цілий шрифт іконок, такий як Font Awesome? Тоді у нас є для вас гарні новини - є велика бібліотека доступних іконок і символів вже в вашому браузері. Вона називається Unicode, і це стандарт, який присвоює унікальні ідентифікатори для постійно зростаючого числа (в даний час більше 110 000) символів і іконок.
Це не означає, що у вас є вибір сотень тисяч ікон, хоча. Це залежить від браузера, який рендерить їх, і він використовує шрифти, які встановлені в системі, щоб зробити це. У цій статті ми зібрали ряд наборів символів, які доступні в Windows, Linux, OS X, Android і IOS. Ви можете використовувати їх в своєму дизайні сьогодні!
Порада:, яка пояснює все, що потрібно знати про кодування і Unicode, яку ми рекомендуємо для прочитання кожному розробнику ПО.
Як використовувати ці іконки
Іконки, наведені в таблицях нижче, є звичайними символами, які Ви можете скопіювати і вставити як якби вони були літерами алфавіту. Але якщо кодування, яка використовується для збереження файлів HTML / CSS нЕ UTF-8 вони не будуть відображатися. Саме тому ми ввели HTML escape-код, який буде працювати завжди. Ось те, що вам потрібно зробити, щоб використовувати ці іконки:
- Знайдіть іконку, яка вам подобається. Ми надали малі і великі превью.
- Скопіюйте код.
- Вставте її в HTML, як звичайний текст. У CSS ви можете використовувати їх як значення властивості content. В JS, PHP та іншими мовами програмування, ви можете використовувати їх як звичайний текст в рядках.
- Ви можете налаштувати іконки, встановивши розмір шрифту, колір, текст і тіні, також як звичайний текст.
іконки
Назва | прев'ю | код | |
---|---|---|---|
Smiley | ☺ | ☺ | ☺ |
Warning Sign | ⚠ | ⚠ | ⚠ |
Hot Springs | ♨ | ♨ | ♨ |
Wheelchair | ♿ | ♿ | ♿ |
Recycle | ♻ | ♻ | ♻ |
8-Ball | ➑ | ➑ | ➑ |
High Voltage | ⚡ | ⚡ | ⚡ |
White Star | ☆ | ☆ | ☆ |
Black Star | ★ | ★ | ★ |
White Heart | ♡ | ♡ | ♡ |
Black Heart | ❤ | ❤ | ❤ |
Coffee | ☕ | ☕ | ☕ |
Airplane | ✈ | ✈ | ✈ |
Hourglass | ⌛ | ⌛ | ⌛ |
Clock | ⌚ | ⌚ | ⌚ |
Black Scissors | ✂ | ✂ | ✂ |
White Scissors | ✄ | ✄ | ✄ |
Crown | ♕ | ♕ | ♕ |
Anchor | ⚓ | ⚓ | ⚓ |
Cross | ✝ | ✝ | ✝ |
Black-White Circle | ◑ | ◑ | ◑ |
Eight Note | ♪ | ♪ | ♪ |
Beamed Eighth Notes | ♫ | ♫ | ♫ |
Four Balloon-Spoked Asterisk | ✣ | ✣ | ✣ |
Circled White Star | ✪ | ✪ | ✪ |
White Star | ✰ | ✰ | ✰ |
White Four Pointed Star | ✧ | ✧ | ✧ |
Black Four Pointed Star | ✦ | ✦ | ✦ |
Ballot Box Check | ☑ | ☑ | ☑ |
Check Mark | ✔ | ✔ | ✔ |
Cross Mark | ✘ | ✘ | ✘ |
Pencil | ✎ | ✎ | ✎ |
Writing Hand | ✍ | ✍ | ✍ |
Female | ♀ | ♀ | ♀ |
Male | ♂ | ♂ | ♂ |
Black Telephone | ☎ | ☎ | ☎ |
White Telephone | ☏ | ☏ | ☏ |
Envelope | ✉ | ✉ | ✉ |
Telephone Location | ✆ | ✆ | ✆ |
Стрілки в юникоде
Назва | прев'ю | код | |
---|---|---|---|
Leftwards Arrow | ← | ← | ← |
Rightwards Arrow | → | → | → |
Upwards Arrow | |||
Downwards Arrow | ↓ | ↓ | ↓ |
Left Right Arrow | ↔ | ↔ | ↔ |
Up Down Arrow | ↕ | ↕ | ↕ |
Right And Left Arrows | ⇄ | ⇄ | ⇄ |
Up And Down Arrows | ⇅ | ⇅ | ⇅ |
Down-Left 90deg Arrow | ↲ | ↲ | ↲ |
Down-Right 90deg Arrow | ↳ | ↳ | ↳ |
Up-Left 90deg Arrow | ↰ | ↰ | ↰ |
Up-Right 90deg Arrow | ↱ | ↱ | ↱ |
North West Arrow To Corner | ⇱ | ⇱ | ⇱ |
South East Arrow To Corner | ⇲ | ⇲ | ⇲ |
Leftwards Arrow To Bar | ⇤ | ⇤ | ⇤ |
Rightwards Arrow To Bar | ⇥ | ⇥ | ⇥ |
Anticlockwise Semicircle Arrow | ↶ | ↶ | ↶ |
Clockwise Semicircle Arrow | ↷ | ↷ | ↷ |
Anticlockwise Circle Arrow | ↺ | ↺ | ↺ |
Clockwise Circle Arrow | ↻ | ↻ | ↻ |
Wide-Headed Rightwards Arrow | ➔ | ➔ | ➔ |
Downwards Zigzag Arrow | ↯ | ↯ | ↯ |
North West Arrow | ↖ | ↖ | ↖ |
Heavy South East Arrow | ➘ | ➘ | ➘ |
Heavy Rightwards Arrow | ➙ | ➙ | ➙ |
Heavy North East Arrow | ➚ | ➚ | ➚ |
Dashed Rightwards Arrow | ➟ | ➟ | ➟ |
Dotted Leftwards Arrow | ⇠ | ⇠ | ⇠ |
Black Rightwards Arrowhead | ➤ | ➤ | ➤ |
Leftwards White Arrow | ⇦ | ⇦ | ⇦ |
Rightwards White Arrow | ⇨ | ⇨ | ⇨ |
Left Angle Quotation Mark | « | « | « |
Right Angle Quotation Mark | » | » | » |
Right Black Pointer | |||
Left Black Pointer | ◀ | ◀ | ◀ |
Up Black Pointer | ▲ | ▲ | ▲ |
Down Black Pointer | ▼ | ▼ | ▼ |
Right White Pointer | ▷ | ▷ | ▷ |
Left White Pointer | ◁ | ◁ | ◁ |
Up White Pointer | △ | △ | △ |
Down White Pointer | ▽ | ▽ | ▽ |
Bow Arrow | ➴ | ➴ | ➴ |
Спецсимволи в юникоде
Валюта в юникоде
іконки погоди
Назва | прев'ю | код | |
---|---|---|---|
Degree | ° | ° | ° |
Small Sun | ☀ | ☀ | ☀ |
Big Sun | ☼ | ☼ | ☼ |
Cloud | ☁ | ☁ | ☁ |
Umbrella | ☔ | ☔ | ☔ |
Snowflake 1 | ❆ | ❆ | ❆ |
Snowflake 2 | ❅ | ❅ | ❅ |
Snowflake 3 | ❄ | ❄ | ❄ |
Дороговкази в юникоде
Назва | прев'ю | код | |
---|---|---|---|
Pointer Left Black | ☚ | ☚ | ☚ |
Pointer Right Black | ☛ | ☛ | ☛ |
Pointer Left White | ☜ | ☜ | ☜ |
Pointer Up White | ☝ | ☝ | ☝ |
Pointer Right White | ☞ | ☞ | ☞ |
Pointer Down White | ☟ | ☟ | ☟ |
Знаки зодіаку в юникоде
Назва | прев'ю | код | |
---|---|---|---|
Овен | ♈ | ♈ | ♈ |
Телець | ♉ | ♉ | ♉ |
Близнюки | ♊ | ♊ | ♊ |
рак | ♋ | ♋ | ♋ |
Лев | ♌ | ♌ | ♌ |
Діва | ♍ | ♍ | ♍ |
ваги | ♎ | ♎ | ♎ |
Скорпіон | ♏ | ♏ | ♏ |
Стрілець | ♐ | ♐ | ♐ |
Козеріг | ♑ | ♑ | ♑ |
Водолій | ♒ | ♒ | ♒ |
риби | ♓ | ♓ | ♓ |
Карткові символи в юникоде
Назва | прев'ю | код | |
---|---|---|---|
Clubs Black | ♠ | ♠ | ♠ |
Hearts Black | ♥ | ♥ | ♥ |
Diamonds Black | ♦ | ♦ | ♦ |
Spades Black | ♣ | ♣ | ♣ |
Clubs White | ♤ | ♤ | ♤ |
Hearts White | ♡ | ♡ | ♡ |
Diamonds White | ♢ | ♢ | ♢ |
Spades White | ♧ | ♧ | ♧ |
Шахові фігури в юникоде
Назва | прев'ю | код | |
---|---|---|---|
King White | ♔ | ♔ | ♔ |
Queen White | ♕ | ♕ | ♕ |
Rook White | ♖ | ♖ | ♖ |
Bishop White | ♗ | ♗ | ♗ |
Knight White | ♘ | ♘ | ♘ |
Pawn White | ♙ | ♙ | ♙ |
King Black | ♚ | ♚ | ♚ |
Queen Black | ♛ | ♛ | ♛ |
Rook Black | ♜ | ♜ | ♜ |
Bishop Black | ♝ | ♝ | ♝ |
Knight Black | ♞ | ♞ | ♞ |
Pawn Black | ♟ | ♟ | ♟ |
Гра в кості
Назва | прев'ю | код | |
---|---|---|---|
Dice Roll One | ⚀ | ⚀ | ⚀ |
Dice Roll Two | ⚁ | ⚁ | ⚁ |
Dice Roll Three | ⚂ | ⚂ | ⚂ |
Dice Roll Four | ⚃ | ⚃ | ⚃ |
Dice Roll Five | ⚄ | ⚄ | ⚄ |
Dice Roll Six | ⚅ | ⚅ | ⚅ |
Математичні символи в юникоде
Назва | прев'ю | код | |
---|---|---|---|
Infinity | ∞ | ∞ | ∞ |
Plus Minus | ± | ± | ± |
Less-Than Or Equal To | ≤ | ≤ | ≤ |
More-Than Or Equal To | ≥ | ≥ | ≥ |
Not Equal To | ≠ | ≠ | ≠ |
Division | ÷ | ÷ | ÷ |
Multiplication x | × | × | × |
Heavy Multiplication x | ✖ | ✖ | ✖ |
Superscript One | ¹ | ¹ | ¹ |
Superscript Two | ² | ² | ² |
Superscript Three | ³ | ³ | ³ |
Circled Plus | ⊕ | ⊕ | ⊕ |
Circled Multiplication | ⊗ | ⊗ | ⊗ |
Logical AND | ∧ | ∧ | ∧ |
Logical OR | ∨ | ∨ | ∨ |
Delta | ∆ | ∆ | ∆ |
Pie | ∏ | ∏ | ∏ |
Sigma (SUM) | ∑ | ∑ | ∑ |
Omega | Ω | Ω | Ω |
Empty Set | ∅ | ∅ | ∅ |
Angle | ∠ | ∠ | ∠ |
Parallel | ∥ | ∥ | ∥ |
Perpendicular | ⊥ | ⊥ | ⊥ |
Almost Equal To | ≈ | ≈ | ≈ |
Triangle | △ | △ | △ |
Circle | ○ | ○ | ○ |
Square | □ | □ | □ |
дробу
Назва | прев'ю | код | |
---|---|---|---|
One Quarter (1/4) | ¼ | ¼ | ¼ |
One Half (1/2) | ½ | ½ | ½ |
Three Quarters (3/4) | ¾ | ¾ | ¾ |
One Third (1/3) | ⅓ | ⅓ | ⅓ |
Two Thirds (2/3) | ⅔ | ⅔ | ⅔ |
One Eight (1/8) | ⅛ | ⅛ | ⅛ |
Three Eights (3/8) | ⅜ | ⅜ | ⅜ |
Five Eights (5/8) | ⅝ | ⅝ | ⅝ |
Seven Eights (7/8) | ⅞ | ⅞ | ⅞ |
Римські цифри в юникоде
Назва | прев'ю | код | |
---|---|---|---|
Roman Numeral One | Ⅰ | Ⅰ | Ⅰ |
Roman Numeral Two | Ⅱ | Ⅱ | Ⅱ |
Roman Numeral Three | Ⅲ | Ⅲ | Ⅲ |
Roman Numeral Four | Ⅳ | Ⅳ | Ⅳ |
Roman Numeral Five | Ⅴ | Ⅴ | Ⅴ |
Roman Numeral Six | Ⅵ | Ⅵ | Ⅵ |
Roman Numeral Seven | Ⅶ | Ⅶ | Ⅶ |
Roman Numeral Eight | Ⅷ | Ⅷ | Ⅷ |
Roman Numeral Nine | Ⅸ | Ⅸ | Ⅸ |
Roman Numeral Ten | Ⅹ | Ⅹ | Ⅹ |
Roman Numeral Eleven | Ⅺ | Ⅺ | Ⅺ |
Roman Numeral Twelve | Ⅻ | Ⅻ | Ⅻ |
Є деякі відмінності рендеринга цих символів в різних операційних системах. Це викликано різними сімействами шрифтів, які використовуються. Крім того, iOS і Android замінюють деякі символи Unicode на смайлики, так що не забудьте перевірити додані символи, щоб переконатися, що цього не станеться і іконки показуються, як передбачалося.
Елементам кодового простору, що представляє невід'ємні цілі числа. Сімейство кодувань визначає машинне представлення послідовності кодів UCS.
Коди в стандарті Юнікод розділені на кілька областей. Область з кодами від U + 0000 до U + 007F містить символи набору ASCII з відповідними кодами. Далі розташовані області знаків різних писемностей, знаки пунктуації та технічні символи. Частина кодів зарезервована для використання в майбутньому. Під символи кирилиці виділені області знаків з кодами від U + 0400 до U + 052F, від U + 2DE0 до U + 2DFF, від U + A640 до U + A69F (див. Кирилиця в Юникоде).
Передумови створення і розвиток Юникода
Оскільки в ряді комп'ютерних систем (наприклад, Windows NT) фіксовані 16-бітові символи вже використовувалися в якості кодування за замовчуванням, було вирішено все найбільш важливі знаки кодувати тільки в межах перших 65 536 позицій (так звана англ. basic multilingual plane, BMP). Інший простір використовується для «додаткових символів» (англ. supplementary characters): Систем письма вимерлих мов або дуже рідко використовуваних китайських ієрогліфів, математичних і музичних символів.
Для сумісності зі старими 16-бітними системами була винайдена система UTF-16, де перші 65 536 позицій, за винятком позицій з інтервалу U + D800 ... U + DFFF, відображаються безпосередньо як 16-бітові числа, а решта представляються у вигляді «сурогатних пар »(перший елемент пари з області U + D800 ... U + DBFF, другий елемент пари з області U + DC00 ... U + DFFF). Для сурогатних пар була використана частина кодового простору (2048 позицій), раніше відведеного для «символів для приватного використання».
Оскільки в UTF-16 можна відобразити тільки 2 20 +2 16 -2048 (1 112 064) символів, то це число і було обрано в якості остаточної величини кодового простору Юнікоду.
Хоча кодова область Юникода була розширена за межі 2 16 вже у версії 2.0, перші символи в «верхній» області були розміщені тільки у версії 3.1.
Роль цієї кодування в веб-секторі постійно зростає, на початок 2010 року частка веб-сайтів, які використовують Юнікод, склала близько 50%.
версії Юникода
У міру зміни і поповнення таблиці символів системи Юникода і виходу нових версій цієї системи, - а ця робота ведеться постійно, оскільки спочатку система Юнікод включала тільки Plane 0 - двухбайтное коди, - виходять і нові документи ISO. Система Юнікод існує в цілому в наступних версіях:
- 1.1 (відповідає стандарту ISO / IEC 10646-1: 1993), стандарт 1991-1995 років.
- 2.0, 2.1 (той же стандарт ISO / IEC 10646-1: 1993 плюс доповнення: «Amendments» з 1-го по 7-е і «Technical Corrigenda» 1 і 2), стандарт 1996 року.
- 3.0 (стандарт ISO / IEC 10646-1: 2000), стандарт 2000 року.
- 3.1 (стандарти ISO / IEC 10646-1: 2000 та ISO / IEC 10646-2: 2001), стандарт 2001 року.
- 3.2, стандарт 2002 року.
- 4.0, стандарт 2003.
- 4.01, Стандарт 2004р.
- 4.1, стандарт 2005.
- 5.0, стандарт 2006.
- 5.1, стандарт 2008.
- 5.2, стандарт 2009.
- 6.0, стандарт 2010 року.
- 6.1, стандарт 2012.
- 6.2, стандарт 2012.
кодова простір
Хоча форми записи UTF-8 і UTF-32 дозволяють кодувати до 2 31 (2 147 483 648) кодових позицій, було прийнято рішення використовувати лише 1 112 064 для сумісності з UTF-16. Втім, навіть і цього більш ніж достатньо - сьогодні (у версії 6.0) використовується трохи менше 110 000 кодових позицій (109 242 графічних та 273 інших символів).
Кодова простір розбито на 17 площин по 2 16 (65536) символів. Нульова площина називається базової, В ній розташовані символи найбільш уживаних писемностей. Перша площина використовується, в основному, для історичних писемностей, друга - для рідко використовуваних ієрогліфів ККЯ, третя зарезервована для архаїчних китайських ієрогліфів. Площині 15 і 16 виділені для приватного вживання.
Для позначення символів Unicode використовується запис виду «U + xxxx»(Для кодів 0 ... FFFF), або« U + xxxxx»(Для кодів 10000 ... FFFFF), або« U + xxxxxx»(Для кодів 100000 ... 10FFFF), де xxx - шістнадцяткові цифри. Наприклад, символ «я» (U + 044F) має код 044F = 1103.
система кодування
Універсальна система кодування (Юнікод) являє собою набір графічних символів і спосіб їх кодування для комп'ютерної обробки текстових даних.
Графічні символи - це символи, які мають видиме зображення. Графічним символам протиставляються керуючі символи і символи форматування.
Графічні символи включають в себе наступні групи:
- літери, що містяться хоча б в одному з обслуговуваних алфавітів;
- цифри;
- знаки пунктуації;
- спеціальні знаки (математичні, технічні, ідеограми та ін.);
- роздільники.
Юнікод - це система для лінійного представлення тексту. Символи, що мають додаткові над- або підрядкові елементи, можуть бути представлені у вигляді побудованої за певними правилами послідовності кодів (складовою варіант, composite character) або у вигляді єдиного символу (монолітний варіант, precomposed character).
модифікуючі символи
Представлення символу «Ї» (U + 0419) у вигляді базового символу «І» (U + 0418) і модифікує символу «̆» (U + 0306)
Графічні символи в Юникоде підрозділяються на протяжні і непротяжних (бесшірінние). Непротяжних символи при відображенні не займають місця в рядку. До них відносяться, зокрема, знаки наголосу і інші діакритичні знаки. Як протяжні, так і непротяжних символи мають власні коди. Протяжні символи інакше називаються базовими (англ. base characters), А непротяжних - модифікують (англ. combining characters); причому останні не можуть зустрічатися самостійно. Наприклад, символ «á» може бути представлений як послідовність базового символу «a» (U + 0061) і модифікує символу «» (U + 0301) або як монолітний символ «á» (U + 00C1).
Особливий тип модифікують символів - селектори варіантів накреслення (англ. variation selectors). Вони діють тільки на ті символи, для яких такі варіанти визначені. У версії 5.0 варіанти накреслення визначені для ряду математичних символів, для символів традиційного монгольського алфавіту і для символів монгольського квадратного листа.
форми нормалізації
Оскільки одні й ті ж символи можна уявити різними кодами, Що іноді ускладнює обробку, існують процеси нормалізації, призначені для приведення тексту до певного стандартному виду.
У стандарті Юнікод визначені 4 форми нормалізації тексту:
- Форма нормалізації D (NFD) - канонічна декомпозиція. В процесі приведення тексту в цю форму всі складові символи рекурсивно замінюються на кілька складових, відповідно до таблиць декомпозиції.
- Форма нормалізації C (NFC) - канонічна декомпозиція з подальшою канонічної композицією. Спочатку текст наводиться до форми D, після чого виконується канонічна композиція - текст обробляється від початку до кінця і виконуються наступні правила:
- Символ S є початковим, Якщо він має нульовий клас модифікації в базі символів Юнікоду.
- У будь-якій послідовності символів, що стартує з початкового символу S, символ C блокується від S, якщо і тільки якщо між S і C є якийсь символ B, який або є початковим, або має однаковий або більший клас модифікації, ніж C. Це правило поширюється тільки на рядки, які пройшли канонічну декомпозицію.
- первинним композитом вважається символ, у якого є канонічна декомпозиція в базі символів Юнікоду (або канонічна декомпозиція для хангиля і він не входить в список виключень).
- Символ X може бути первинно суміщений з символом Y, якщо і тільки якщо існує первинний композит Z, канонічно еквівалентний послідовності
. - Якщо черговий символ C не блокується останнім зустрінутим початковим базовим символом L і він може бути успішно первинно суміщений з ним, то L замінюється на композит L-C, а C видаляється.
- Форма нормалізації KD (NFKD) - сумісна декомпозиція. При приведенні в цю форму всі складові символи замінюються, використовуючи як канонічні карти декомпозиції Юникода, так і сумісні карти декомпозиції, після чого результат ставиться в канонічному порядку.
- Форма нормалізації KC (NFKC) - сумісна декомпозиція з подальшою канонічної композицією.
Терміни «композиція» та «декомпозиція» розуміють під собою відповідно з'єднання або розкладання символів на складові частини.
приклади
Початковий текст | NFD | NFC | NFKD | NFKC |
---|---|---|---|---|
Français | Franc \\ u0327ais | Fran \\ xe7ais | Franc \\ u0327ais | Fran \\ xe7ais |
А, Е, Й | \\ U0410, \\ u0401, \\ u0419 | \\ U0410, \\ u0415 \\ u0308 \\ u0418 \\ u0306 | \\ U0410, \\ u0401, \\ u0419 | |
が | \\ U304b \\ u3099 | \\ u304c | \\ U304b \\ u3099 | \\ u304c |
Henry IV | Henry IV | Henry IV | Henry IV | Henry IV |
Henry ⅳ | Henry \\ u2163 | Henry \\ u2163 | Henry IV | Henry IV |
двонаправлене лист
Стандарт Юнікод підтримує писемності мов як з напрямком написання зліва направо (англ. left-to-right, LTR), Так і з написанням справа наліво (англ. right-to-left, RTL) - наприклад, арабське і єврейське лист. В обох випадках символи зберігаються в «природному» порядку; їх відображення з урахуванням потрібного напрямку письма забезпечується додатком.
Крім того, Юнікод підтримує комбіновані тексти, що поєднують фрагменти з різним напрямком письма. Дана можливість називається двунаправленность (Англ. bidirectional text, BiDi). Деякі спрощені обробники тексту (наприклад, в стільникових телефонах) Можуть підтримувати Юнікод, але не мати підтримки двобічної. Всі символи Юнікоду поділені на кілька категорій: пишуться зліва направо, що пишуться справа наліво, і пишуться в будь-якому напрямку. Символи останньої категорії (в основному це знаки пунктуації) при відображенні приймають напрямок навколишнього їх тексту.
презентовані символи
Юнікод включає практично всі сучасні писемності, в тому числі:
та інші.
З академічними цілями додані багато історичних писемності, в тому числі: руни, давньогрецька, єгипетські ієрогліфи, клинопис, писемність майя, етруська алфавіт.
У Юникоде представлений широкий набір математичних і музичних символів, а також піктограм.
Однак в Юнікод принципово не включаються логотипи компаній і продуктів, хоча вони і зустрічаються в шрифтах (наприклад, логотип Apple в кодуванні MacRoman (0xF0) або логотип Windows в шрифті Wingdings (0xFF)). У юнікодовскіх шрифтах логотипи повинні розміщуватися тільки в області користувальницьких символів.
ISO / IEC 10646
Консорціум Юнікоду працює в тісному зв'язку з робочою групою ISO / IEC / JTC1 / SC2 / WG2, яка займається розробкою міжнародного стандарту 10646 (ISO / IEC 10646). Між стандартом Юникода і ISO / IEC 10646 встановлена синхронізація, хоча кожен стандарт використовує свою термінологію і систему документації.
Співпраця Консорціуму Юникода з Міжнародною організацією зі стандартизації (англ. International Organization for Standardization, ISO ) Почалося в 1991 році. У 1993 році ISO випустила стандарт DIS 10646.1. Для синхронізації з ним Консорціум затвердив стандарт Юнікод версії 1.1, в який були внесені додаткові символи з DIS 10646.1. В результаті значення закодованих символів в Unicode 1.1 і DIS 10646.1 повністю збіглися.
Надалі співпраця двох організацій продовжилося. У 2000 році стандарт Unicode 3.0 був синхронізований з ISO / IEC 10646-1: 2000. Майбутня третя версія ISO / IEC 10646 буде синхронізована з Unicode 4.0. Можливо, ці специфікації навіть будуть опубліковані як єдиний стандарт.
Аналогічно форматам UTF-16 і UTF-32 в стандарті Юнікод, стандарт ISO / IEC 10646 також має дві основні форми кодування символів: UCS-2 (2 байта на символ, аналогічно UTF-16) і UCS-4 (4 байта на символ, аналогічно UTF-32). UCS значить універсальний многооктетний (Мультибайтних) кодований набір символів (Англ. universal multiple-octet coded character set ). UCS-2 можна вважати підмножиною UTF-16 (UTF-16 без сурогатних пар), а UCS-4 є синонімом для UTF-32.
способи подання
Юнікод має кілька форм представлення (англ. Unicode transformation format, UTF ): UTF-8, UTF-16 (UTF-16BE, UTF-16LE) і UTF-32 (UTF-32BE, UTF-32LE). Була розроблена також форма подання UTF-7 для передачі по семібітним каналах, але через несумісність з ASCII вона не набула поширення і не включена в стандарт. 1 квітня 2005 року було запропоновано дві жартівливі форми подання: UTF-9 і UTF-18 (RFC 4042).
Unicode UTF-8: 0x00000000 - 0x0000007F: 0xxxxxxx 0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx 0x00000800 - 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx 0x00010000 - 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
Теоретично можливі, але не включені в стандарт також:
0x00200000 - 0x03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0x04000000 - 0x7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Незважаючи на те, що UTF-8 дозволяє вказати один і той же символ декількома способами, тільки найбільш короткий з них правильний. Решта форми повинні відхилятися з міркувань безпеки.
порядок байтів
У потоці даних UTF-16 старший байт може записуватися або перед молодшим (англ. UTF-16 big-endian), Або після молодшого (англ. UTF-16 little-endian). Аналогічно існує два варіанти четирёхбайтной кодування - UTF-32BE і UTF-32LE.
Для визначення формату представлення Юнікоду в початок текстового файлу записується сигнатура - символ U + FEFF ( нерозривний пробіл нульової довжини), також іменований міткою порядку байтів (Англ. byte order mark, BOM ). Це дозволяє розрізняти UTF-16LE і UTF-16BE, оскільки символу U + FFFE не існує. Також цей спосіб іноді застосовується для позначення формату UTF-8, хоча до цього формату і не застосовується поняття порядку байтів. Файли, такі цією угодою, починаються з таких послідовностей байтів:
UTF-8 EF BB BF UTF-16BE FE FF UTF-16LE FF FE UTF-32BE 00 00 FE FF UTF-32LE FF FE 00 00
На жаль, цей спосіб не дозволяє надійно розрізняти UTF-16LE і UTF-32LE, оскільки символ U + 0000 допускається Юнікод (хоча реальні тексти рідко починаються з нього).
Файли в кодуваннях UTF-16 і UTF-32, що не містять BOM, повинні мати порядок байтів big-endian (unicode.org).
Юнікод і традиційні кодування
Впровадження Юникода призвело до зміни підходу до традиційних 8-бітовим кодувань. Якщо раніше кодування задавалася шрифтом, то тепер вона задається таблицею відповідності між даним кодуванням і Unicode. Фактично 8-бітові кодування перетворилися в форму подання деякого підмножини Юникода. Це набагато спростило створення програм, які повинні працювати з безліччю різних кодувань: тепер, щоб додати підтримку ще одного кодування, треба всього лише додати ще одну таблицю перекодування в Юнікод.
Крім того, багато форматів даних дозволяють вставляти будь-які символи Юнікоду, навіть якщо документ записаний в старій 8-бітної кодуванні. Наприклад, в HTML можна використовувати коди з амперсандом.
реалізації
Більшість сучасних операційних систем в тій чи іншій мірі забезпечують підтримку Юнікоду.
В операційних системах сімейства Windows NT для внутрішнього представлення імен файлів і інших системних рядків використовується двухбайтовая кодування UTF-16LE. Системні виклики, які беруть строкові параметри, існують в однобайтном і двухбайтное варіантах. Детальніше див. У статті
Юнікод (по-англійськи Unicode) - це стандарт кодування символів. Простіше кажучи, це таблиця відповідності текстових знаків (, букв, елементів пунктуації) Двійковим кодами. Комп'ютер розуміє тільки послідовність нулів і одиниць. Щоб він знав, що саме повинен відобразити на екрані, необхідно присвоїти кожному символу свій унікальний номер. У вісімдесятих, знаки кодували одним байтом, тобто вісьмома бітами (кожен біт це 0 або 1). Таким чином виходило, що одна таблиця (вона ж кодування або набір) може вмістити лише 256 знаків. Цього може не вистачити навіть для однієї мови. Тому, з'явилося багато різних кодувань, плутанина з якими часто призводила до того, що на екрані замість тексту, що читається з'являлися якісь дивні кракозябри. Був потрібен єдиний стандарт, яким і став Юнікод. Сама використовувана кодування - UTF-8 (Unicode Transformation Format) для зображення символу задіє від 1 до 4 байт.
символи
Символи в таблицях Юникода пронумеровані шестнадцатерічнимі числами. Наприклад, кирилична заголовна буква М позначена U + 041C. Це означає, що вона стоїть на перетині рядка 041 і стовпця С. Її можна просто скопіювати і потім вставити куди-небудь. Щоб не ритися в багатокілометровому списку слід скористатися пошуком. Зайшовши на сторінку символу, ви побачите його номер в Юникоде і спосіб накреслення в різних шрифтах. У рядок пошуку можна вбити і сам знак, навіть якщо замість нього отрісовивается квадратик, хоча б для того, щоб дізнатися, що це було. Ще, на цьому сайті є спеціальні (і - випадкові) набори однотипних значків, зібрані з різних розділів, для зручності їх використання.
Стандарт Юнікод - міжнародний. Він включає знаки майже всіх писемностей світу. У тому числі і тих, які вже не застосовуються. Єгипетські ієрогліфи, німецькі руни, писемність майя, клинопис і алфавіти древніх держав. Представлені і позначення мір і ваг, нотних грамот, математичних понять.
Сам консорціум Юникода не показала нових символів. У таблиці додаються ті значки, які знаходять своє застосування в суспільстві. Наприклад, знак рубля активно використовувався протягом шести років перш ніж був доданий в Юнікод. Піктограми емодзі (смайлики) теж спочатку отримали широке застосування в Японіїі перш ніж були включені в систему кодування. А от товарні знаки, І логотипи компаній не додаються принципово. Навіть такі поширені як яблуко Apple або прапор Windows. На сьогоднішній день, в версії 8.0 закодовано близько 120 тисяч символів.
Кожен користувач Інтернету в спробах налаштувати ту чи іншу його функцію хоча б один раз бачив на дисплеї написане слово «Юнікод». Що це таке, ви дізнаєтеся, прочитавши цю статтю.
визначення
Кодування "Юнікод" - стандарт кодування символів. Він був запропонований некомерційною організацією Unicode Inc. в 1991 році. Стандарт розроблений з метою об'єднання якомога більшої кількості різнотипних символів в одному документі. Сторінка, яка створена на його основі, може містити в собі букви і ієрогліфи з різних мов (від російського до корейського) і математичні знаки. При цьому всі символи в даному кодуванні відображаються без проблем.
причини створення
Колись, задовго до появи єдиної системи "Юнікод", кодування вибиралася виходячи з переваг автора документа. З цієї причини нерідко, щоб прочитати один документ, потрібно було використовувати різні таблиці. Іноді це доводилося робити по кілька разів, що істотно ускладнювало життя звичайному користувачеві. Як вже було сказано, рішення цієї проблеми в 1991 році було запропоновано некомерційною організацією Unicode Inc., яка запропонувала новий тип кодування символів. Він був покликаний об'єднати морально застарілі і різноманітні стандарти. "Юнікод" - кодування, яка озволіла домогтися немислимого на той момент: створити інструмент, який підтримує величезну кількість символів. Результат перевершив багато очікувань - з'явилися документи, одночасно містять як англійська, так і російський текст, латинь і математичні вирази.
Але створення єдиної кодування передувала необхідність дозволу ряду проблем, які виникли через величезного розмаїття стандартів, вже існували на той момент. Найпоширеніші з них:
- ельфійські письмена, або «кракозябри»;
- обмеженість набору символів;
- проблема перетворення кодувань;
- дублювання шрифтів.
Невеликий історичний екскурс
Уявіть, що на дворі 80-е. Комп'ютерна техніка ще не так поширена і має вигляд, відмінний від сьогоднішнього. У той час кожна ОС по-своєму унікальна і доопрацьована кожним ентузіастом під конкретні потреби. Необхідність обміну інформацією перетворюється в додаткове доопрацювання всього на світі. Спроба прочитати документ, створений під іншою ОС, часто виводить на екран незрозумілий набір символів, і починаються ігри з кодуванням. Не завжди виходить зробити це швидко, і часом необхідний документ вдається відкрити через півроку, а то й пізніше. Люди, які часто обмінюються інформацією, створюють для себе таблиці перетворення. І ось робота над ними виявляє цікаву деталь: створювати їх потрібно за двома напрямками: «з моєї в твою» і назад. Зробити банальну інверсію обчислень машина не може, для неї в правому стовпчику исходник, а в лівому - результат, але ніяк не навпаки. Якщо з'являлася необхідність використовувати будь-які спеціальні символи в документі, їх необхідно було спочатку додати, а потім ще й пояснити партнеру, що йому потрібно зробити, щоб ці символи не перетворилися в «кракозябри». І не будемо забувати, що під кожну кодування доводилося розробляти або впроваджувати власні шрифти, що призводило до створення величезної кількості дублів в ОС.
Уявіть ще, що на сторінці шрифтів ви побачите 10 штук ідентичних Times New Roman з маленькими позначками: для UTF-8, UTF-16, ANSI, UCS-2. Тепер ви розумієте, що розробка універсального стандарту була нагальною потребою?
«Батьки-творці»
Витоки створення Unicode слід шукати в 1987 році, коли Джо Беккер з Xerox разом з Лі Коллінзом і Марком Девісом з компанії Apple почали дослідження в сфері практичного створення універсального набору символів. У серпні 1988 року Джо Беккер опублікував проект пропозиції щодо створення 16-бітної міжнародної багатомовної системи кодування.
Через кілька місяців робоча група Unicode була розширена за рахунок включення Кена Уістлера і Майка Кернегана з RLG, Гленн Райт з Sun Microsystems і декількох інших фахівців, що дозволило завершити роботи з попереднього формування єдиного стандарту кодування.
Загальний опис
В основі Unicode лежить поняття символу. Під цим визначенням розуміється абстрактне явище, існуюче в конкретному виді писемності і реалізоване через графеми (свої «портрети»). Кожен символ задається в "Юникоде" унікальним кодом, що належить конкретному блоку стандарту. Наприклад, графема B є і в англійському, і в російській алфавітах, але в Unicode їй відповідають 2 різних символу. До них застосовується перетворення в т. Е. Кожен з них описується ключем бази даних, набором властивостей і повною назвою.
переваги Unicode
Від інших сучасників кодування "Юнікод" відрізнялася величезним запасом знаків для «шифрування» символів. Справа в тому, що його попередники мали 8 біт, тобто підтримували 28 символів, а ось нова розробка мала вже 216 символів, що стало гігантським кроком вперед. Це дозволило закодувати практично всі існуючі і поширені алфавіти.
З появою "Юникода" відпала потреба використовувати таблиці перетворення: як єдиний стандарт він просто зводив нанівець їх необхідність. Точно так же канули в Лету і «кракозябри» - єдиний стандарт зробив їх неможливими, так само як і виключив необхідність створення дублів шрифтів.
розвиток Unicode
Звичайно, прогрес не стоїть на місці, і з моменту першої презентації минуло вже 25 років. Однак кодування "Юнікод" вперто утримує свої позиції в світі. Багато в чому це стало можливим завдяки тому, що він став легко впроваджуються і набув поширення, будучи визнаним розробникам пропрієтарного (платного) і відкритого ПЗ.
При цьому не варто думати, що сьогодні нам доступна та ж кодування "Юнікод", що і чверть століття тому. на даний момент її версія змінилася на 5.х.х, а кількість кодованих символів зросла до 231. Від можливості використовувати більший запас знаків відмовилися, щоб все ще зберегти підтримку для Unicode-16 (кодування, де максимальна їх кількість обмежувалася цифрою 216). З моменту своєї появи і до версії 2.0.0 "Юнікод-стандарт" збільшив кількість символів, які в нього входили, практично в 2 рази. Зростання можливостей тривав і в наступні роки. До версії 4.0.0 вже з'явилася необхідність збільшити сам стандарт, що і було зроблено. В результаті "Юнікод" знайшов той вид, в якому ми його знаємо сьогодні.
Що ще є в Unicode?
Крім величезного, постійно поповнюється кількості символів, має ще одну корисну рису. Йдеться про так званої нормалізації. Замість того щоб перегортати весь документ символ за символом і підставляти відповідні значки з таблиці відповідності, використовується один з існуючих алгоритмів нормалізації. Про що мова?
Замість того щоб витрачати ресурси обчислювальної машини на регулярну перевірку одного і того ж символу, який може бути схожим в різних алфавітах, використовується спеціальний алгоритм. Він дозволяє винести схожі символи окремою графою таблиці підстановки і звертатися вже до них, а не раз по раз перевіряти ще раз всі дані.
Таких алгоритмів розроблено і впроваджено чотири. У кожному з них перетворення відбувається по строго певним принципом, що відрізняється від інших, тому назвати якийсь один з них найбільш ефективним не представляється можливим. Кожен розроблявся для певних потреб, був впроваджений і успішно використовується.
поширення стандарту
За 25 років своєї історії кодування "Юнікод" отримала, ймовірно, найбільше поширення в світі. Під цей стандарт підганяються також програми і web-сторінки. Про широту застосування може говорити той факт, що Unicode сьогодні використовують понад 60% інтернет-ресурсів.
Тепер вам відомо, коли з'явився стандарт "Юнікод". Що це таке, ви також знаєте і зможете оцінити всі значення винаходи, зробленого групою фахівців Unicode Inc. більше 25 років тому.
(Коди від 0 до 127), тобто одним байтом кодуються латинські літери, Цифри і спеціальні символи. Російські літери (кирилиця) представляються 16-бітними (двухбайтное) кодами:
110XXXXX 10XXXXXX,
де X позначені виконавчі розряди для розміщення коду символу відповідно до таблиці UNICODE.
Юнікод (англ. Unicode) - стандарт кодування символів, що дозволяє представити знаки майже всіх письмових мов. Подані в юникоде символи кодуються цілими числами без знака. Ці числа будемо називати кодами символів в юникоде або просто UNICODE. Юнікод має кілька форм представлення символів в комп'ютері: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) і UTF-32 (UTF-32BE, UTF-32LE). (Англ. Unicode transformation format - UTF).
Розглянемо, як кодується в UTF-8 літера Ж. її UNICODE - 1046 10 або 0416 16 або 10000 010110 2. UNICODE в двійковому вигляді розбивається на дві частини: п'ять лівих біт і шість правих. Ліва частина доповнюється до байта ознакою 110 двухбайтное коду UTF-8: 110 10000. До правої частини приписуються два біта 10 ознаки продовження багатобайтові коду: 10 010110. Остаточно код букви Ж в UTF-8 виглядає так:
110
10000 10
010110 2
або D0 96 16
Таким чином, російська буква кодується двічі: спочатку в 11-бітний UNICODE, А потім - в 16-бітний UTF-8.
У наведеній нижче таблиці, крім кодів UNICODE і UTF-8 в шістнадцятковій системі числення, дані коди UTF-8 в десятковій системі числення і для порівняння коди кирилиці в кодуванні CP-1251, Інакше званої windovs-1251.
символ | UNICODE | UTF-8 | CP-1251 | ||
---|---|---|---|---|---|
Шістнадцятковим. | десят | Шістнадцятковим. | десят | ||
А | 0410 | 1040 | D090 | 208 144 | 192 |
Б | 0411 | 1041 | D091 | 208 145 | 193 |
В | 0412 | 1042 | D092 | 208 146 | 194 |
Г | 0413 | 1043 | D093 | 208 147 | 195 |
Д | 0414 | 1044 | D094 | 208 148 | 196 |
Е | 0415 | 1045 | D095 | 208 149 | 197 |
Ж | 0416 | 1046 | D096 | 208 150 | 198 |
З | 0417 | 1047 | D097 | 208 151 | 199 |
І | 0418 | 1048 | D098 | 208 152 | 200 |
Й | 0419 | 1049 | D099 | 208 153 | 201 |
До | 041A | 1050 | D09A | 208 154 | 202 |
Л | 041B | 1051 | D09B | 208 155 | 203 |
М | 041C | 1052 | D09C | 208 156 | 204 |
Н | 041D | 1053 | D09D | 208 157 | 205 |
Про | 041E | 1054 | D09E | 208 158 | 206 |
П | 041F | 1055 | D09F | 208 159 | 207 |
Р | 0420 | 1056 | D0A0 | 208 160 | 208 |
З | 0421 | 1057 | D0A1 | 208 161 | 209 |
Т | 0422 | 1058 | D0A2 | 208 162 | 210 |
У | 0423 | 1059 | D0A3 | 208 163 | 211 |
Ф | 0424 | 1060 | D0A4 | 208 164 | 212 |
Х | 0425 | 1061 | D0A5 | 208 165 | 213 |
Ц | 0426 | 1062 | D0A6 | 208 166 | 214 |
Ч | 0427 | 1063 | D0A7 | 208 167 | 215 |
Ш | 0428 | 1064 | D0A8 | 208 168 | 216 |
Щ | 0429 | 1065 | D0A9 | 208 169 | 217 |
ред | 042A | 1066 | D0AA | 208 170 | 218 |
И | 042B | 1067 | D0AB | 208 171 | 219 |
Ь | 042C | 1068 | D0AC | 208 172 | 220 |
Е | 042D | 1069 | D0AD | 208 173 | 221 |
Ю | 042E | 1070 | D0AE | 208 174 | 222 |
Я | 042F | 1071 | D0AF | 208 175 | 223 |
а | 0430 | 1072 | D0B0 | 208 176 | 224 |
б | 0431 | 1073 | D0B1 | 208 177 | 225 |
в | 0432 | 1074 | D0B2 | 208 178 | 226 |
г | 0433 | 1075 | D0B3 | 208 179 | 227 |
д | 0434 | 1076 | D0B4 | 208 180 | 228 |
е | 0435 | 1077 | D0B5 | 208 181 | 229 |
ж | 0436 | 1078 | D0B6 | 208 182 | 230 |
з | 0437 | 1079 | D0B7 | 208 183 | 231 |
і | 0438 | 1080 | D0B8 | 208 184 | 232 |
й | 0439 | 1081 | D0B9 | 208 185 | 233 |
до | 043A | 1082 | D0BA | 208 186 | 234 |
л | 043B | 1083 | D0BB | 208 187 | 235 |
м | 043C | 1084 | D0BC | 208 188 | 236 |
н | 043D | 1085 | D0BD | 208 189 | 237 |
про | 043E | 1086 | D0BE | 208 190 | 238 |
п | 043F | 1087 | D0BF | 208 191 | 239 |
р | 0440 | 1088 | D180 | 209 128 | 240 |
з | 0441 | 1089 | D181 | 209 129 | 241 |
т | 0442 | 1090 | D182 | 209 130 | 242 |
у | 0443 | 1091 | D183 | 209 131 | 243 |
ф | 0444 | 1092 | D184 | 209 132 | 244 |
х | 0445 | 1093 | D185 | 209 133 | 245 |
ц | 0446 | 1094 | D186 | 209 134 | 246 |
ч | 0447 | 1095 | D187 | 209 135 | 247 |
ш | 0448 | 1096 | D188 | 209 136 | 248 |
щ | 0449 | 1097 | D189 | 209 137 | 249 |
ь | 044A | 1098 | D18A | 209 138 | 250 |
и | 044B | 1099 | D18B | 209 139 | 251 |
ь | 044C | 1100 | D18C | 209 140 | 252 |
е | 044D | 1101 | D18D | 209 141 | 253 |
ю | 044E | 1102 | D18E | 209 142 | 254 |
я | 044F | 1103 | D18F | 209 143 | 255 |
Символи поза загальним правила | |||||
Е | 0401 | 1025 | D001 | 208 101 | 168 |
е | 0451 | 1025 | D191 | 209 145 | 184 |