Ти тут

Utf-8 - кодування сімволів

Юнікод підтрімує практично всі існуючі набори сімволів. Найкращий формою кодування набору сімволів Юнікоду є cp1251-кодування. У ній реалізована сумісність з ASCII, стійкість до спотворення Даних, ефективність и простота ОБРОБКИ. Альо про все по порядку.

форми кодування

Комп`ютери оперують числами не просто як абстрактне математичне об`єктами, а як комбінаціямі одиниць зберігання і обробка информации фіксованого розміру - байтів и 32-розрядно слів. Стандарт кодування повинен це враховуваті при візначенні способу представлення сімволів числами.

У комп`ютерних системах цілі числа зберігаються в комірках пам`яті розміром 8 біт (1 байт), 16 або 32 біт. Кожна форма кодування Юнікод візначає, яка послідовність елементів пам`яті представляет ціле число, відповідне конкретному символу. У стандарті представлені три Різні форми кодування сімволів Юнікоду: 8, 16 и 32-бітовіх блоками. Відповідно, смороду звуть cp1251, UTF-16 и UTF-32. Назва UTF розшіфровується як формат превращение Юнікоду. Кожна з трьох форм кодування є рівноправнімі засоби представлення сімволів Юнікоду, має Преимущества в різніх областях! Застосування.

Дані кодування могут буті вікорістані для подання всех сімволів стандарту Юнікод. Таким чином, смороду Повністю сумісні для РІШЕНЬ, з різніх причин Використовують Різні форми кодування. Кожна кодування может буті однозначно превратилась в будь-яку з двох других без Втрати Даних.

utf 8 кодування

принцип ненакладення

Кожна з форм кодування Юнікод розроблено з урахуванням непріпустімість часткового накладення. Например, Windows-932 формує символи з одного або двох байтів коду. Довжина послідовності Залежить від первого байта, тому значення лідіруючого байта в послідовності з двох байтів и одиночного байта НЕ перетінаються. Однако значення одиночного байта и замікає байта послідовності могут збігатіся. Це означає, например, что при поиска символу D (код 44) можна помилковості найти его входять до Другої части послідовності з двох байтів символу «Д» (код 84 44). Щоб з`ясувати, яка послідовність є правильною, програма винна врахуваті попередні байт.

Ситуація ускладнено, если ведучий и замікає байт співпадуть. Це означає, что для Зняття неоднозначності буде проводитись зворотнього поиск до Досягнення качана тексту або однозначної послідовності коду. Це не только неефективно, но НЕ захищений від можливости помилок, Аджея й достатньо одного неправильного байта, щоб весь текст ставши нечитабельним.

Формат превращение Юнікоду дозволяє избежать даної проблеми, тому что значення ведучої, замікає и одіночної одиниці зберігання информации НЕ збігаються. Завдяк цьом всі кодування Юнікод підходять для поиска и порівняння, Ніколи НЕ даючі помилковості результату через збіг різніх частин коду сімволів. Тієї факт, что дані форми кодування дотрімуються принцип ненакладення, відрізняє їх від других мультібайтніх східно кодування.

Іншім аспектом неперетінання кодування Юнікоду є ті, что КОЖЕН символ має чітко візначені Межі. При цьом відпадає необходимость в скануванні невизначенності числа попередніх сімволів. Дану особлівість кодування іноді назівають самосінхронізацією. Спотворення однієї одиниці коду введе до спотворення только одного символу, а навколішні символи залішаються недоторканих. У 8-бітному форматі превращение, если покажчик посілається на байт, что почінається з 10xxxxxx (вместо двійкового коду), для поиска качана символу нужно від одного до трьох зворотніх переходів.

кодування utf 8

узгодженість

Консорціум Юнікоду в повній мірі підтрімує всі 3 форми кодування. Важліво НЕ протіставляті cp1251 и Юнікод, Аджея всі формати превращение - однаково правомірні втілення форм кодування сімволів стандарту Юнікод.

Байт-орієнтація

Для подання символу UTF-32 Знадоби одна 32-бітна одиниця коду, яка збігається з кодом Юникода. UTF-16 - від однієї до двох 16-бітніх одиниць. А cp1251 вікорістовує до 4 байт.

Кодування cp1251 Створена для сумісності з байт-орієнтованімі системами на основе ASCII. Велика частина існуючого програмного забезпечення та практика інформаційних технологій трівалій годину спіралі на уявлення сімволів у виде послідовності байтів. Безліч протоколів Залежить від незмінності кодування ASCII и вікорістовує або унікає СПЕЦІАЛЬНІ керуючі символи. Простим способом адаптуваті Юнікод до таких СИТУАЦІЙ можна, застосувались 8-бітове кодування для представлення сімволів Юнікоду, еквівалентніх будь-якому символу ASCII або Керуючому символу. Для цього и призначила кодування cp1251.

Мінліва довжина

cp1251 - кодування змінної довжина, что складається з 8-бітніх одиниць зберігання информации, старші біті якіх позначають, до якої части послідовності відносіться КОЖЕН окремий байт. Один ДІАПАЗОН значень відведеній для первого елемента послідовності коду, Інший - для Наступний. Це Забезпечує НЕ перетінання кодування.

кодування сімволів utf 8

ASCII



cp1251-кодування Повністю підтрімує коди ASCII (0x00-0x7F). Це означає, что символи Юнікоду U + 0000-U + 007F конвертуються в єдиний байт 0x00-0x7F cp1251 и таким чином стають НЕ відрізнятісь від ASCII. Більш того, щоб избежать багатозначності, значення 0x00-0x7F НЕ Використовують более ні в одному байті представлення сімволів Юнікоду. Для кодування неідеографіческіх сімволів, відмінніх від ASCII, вікорістовується послідовність з двох байтів. Символи діапазону U + 0800-U + FFFF представлені трьома байтами, а додаткові з кодами более U + FFFF вімагають чотірьох байтів.

галузь! застосування

Кодуванні cp1251 зазвічай віддається перевага в Протоколі HTML и Йому подібним.

XML ставши дере стандартом з ПОВНЕ підтрімкою кодування cp1251. Организации, что займаються стандартізацією, теж ее рекомендуються. Проблема ПІДТРИМКИ в адресах URL, відмінніх від ASCII-сімволів, булу вірішена, коли консорціум W3С и інженерна група IETF дійшлі Згоди про кодування всех адреса URL Виключно в cp1251.

Сумісність з ASCII полегшує Перехід до нового програмного забезпечення. З cp1251 працює більшість текстових редакторів, в тому чіслі JEdit, Emacs, BBEdit, Eclipse и "блокнот" операційної системи Windows. Жодна Інша форма кодування Юнікоду НЕ может похвалітіся такою підтрімкою з боку інструментальніх ЗАСОБІВ.

Перевага кодування Полягає в тому, что вона складається з послідовності байтів. З рядками cp1251 легко працювати в C та іншімі мовами програмування. Це єдина форма кодування, что НЕ требует Мітки порядку байтів BOM або оголошення кодування в XML.

html кодування utf 8

самосінхронізація

В оточенні, что вікорістовує 8-бітну обробка сімволів, в порівнянні з іншімі багатобайтові кодування, cp1251 має следующие Преимущества:

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

порівняння перевага

cp1251-кодування компактна. Альо при застосуванні для кодування східно сімволів (китайських, японських, корейських, что Використовують знаки китайського письма) Використовують 3-байтніє послідовності. Такоже cp1251-кодування поступається іншім формам кодування по швідкості ОБРОБКИ. А двоичная сортуваннях рядків дает тієї ж результат, что и двоичная сортуваннях Юникода.

Схема кодування сімволів



Схема кодування сімволів складається з форми кодування сімволів и способу побайтного Розташування одиниць коду. Для визначення схеми кодування стандартом Юникода предусмотрена использование початкової Мітки порядку байтів (BOM, Byte order mark).

При включенні BOM в cp1251 функція Мітки обмежується только зазначену на использование форми кодування. Проблеми визначення порядку байтів у cp1251 немає, так як ее розмір одиниці кодування дорівнює одному байту. Використання BOM для даної форми кодування НЕ є ні обов`язковим, ні рекомендованих. BOM может зустрічатіся в текстах, конвертування з других кодування, что Використовують мітку порядку байтів, або для сигнатури кодування cp1251. Представляет собою послідовність з 3 байтів EF16 BB16 BF16.

файл в кодуванні utf 8

Як Задати кодування cp1251

В HTML кодування cp1251 встановлюється с помощью следующего коду:

head

meta http-equiv ="Content-Type" content ="text / html- charset = utf-8"

У PHP кодування cp1251 задається с помощью Функції header () на самому качана файлу после завдання значення уровня Виведення помилок:

? Php

error_reporting (-1);

header ( `Content-Type: text / html- charset = utf-8`);

Для Підключення до баз Даних MySQL кодування cp1251 встановлюється так:

? Php

mysql_set_charset ( `utf8`);

В CSS-файлах кодування сімволів cp1251 вказується так:

@charset "utf-8";

Зберегти в кодуванні utf 8

При збереженні файлів всіх типів вібірається кодування cp1251 без BOM, інакше веб-сайт не працюватіме. Для цього в Програмі DreamWeave нужно вібрато пункт меню «Модіфікації - Властивості Сторінки - Тема / кодування», Изменить кодування на cp1251. Потім слід Перезавантажити сторінку, прібраті галочку з пункту «Підключіті Юнікод сигнатури (BOM)» и застосуваті Зміни. Если Який-небудь текст на странице або в базі Даних БУВ введень іншою формою кодування, то его нужно ввести Нові або перекодуваті. При роботі з регулярними виразі обов`язково використовуват модіфікатор u.

Такоже можна Зберегти файл в кодуванні cp1251 в «Блокноті» ОС Windows. После Вибори пункту меню «Файл - Зберегти як ...» Встановити необхідну форму кодування и Зберегти файл в кодуванні cp1251.

В текстовому редакторі Notepad ++, если кодування Відмінна від cp1251, через пункт меню «превратить в cp1251 без BOM» Изменить кодування и Зберегти в кодуванні cp1251.

кодування utf 8 без bom

альтернативи немає

В условиях глобалізації, коли Політичні и мовні кордони стіраються, набори сімволів, Які ма ють Місцеві Особливості, стають малопрідатнімі. Юнікод є Єдиним набором сімволів з підтрімкою всех локалізацій. А cp1251 - приклад правильної реализации Юникода, яка:

  • підтрімує широкий ДІАПАЗОН інструментальніх ЗАСОБІВ, в тому чіслі сумісність з кодування ASCII;
  • має стійкість до спотворення Даних;
  • проста и ефективна при обробці;
  • НЕ Залежить від платформи.

З з`явиться cp1251 Дискусії про ті, яка форма кодування або набір сімволів краще, стали безглузді.

Поділися в соц мережах:

Увага, тільки СЬОГОДНІ!

Схожі повідомлення


Увага, тільки СЬОГОДНІ!