КомпютриПрограмиране

UTF-8 - кодиране на символите

Unicode поддържа почти всички съществуващи знакови набори. Най-добрата форма на кодиране Unicode набор от символи е UTF-8 кодиране. Той поддържа съвместимост с ASCII, устойчивост на изкривяване на данните, ефективността и лекотата на обработка. Но първо първите неща.

кодираща форма

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

В компютърните системи, числа, съхранени в клетките на паметта на 8 бита (1 байт), 16 или 32 бита. Всяка форма определя Unicode кодиране, което последователност на паметта клетки е цяло число, съответстващо на определен символ. В стандарта има три различни форми на кодиране Unicode символа 8, 16 и 32-битови блокове. Съответно, те са известни като UTF-8, UTF-16 и UTF-32. Наименование UTF щандове за Unicode Transformation Format. Всяка от трите форми на кодиращи средства е равно представителство Unicode характер има предимства в различни приложения.

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

принцип nenalozheniya

Всяка от кодираща форми Unicode разработена с оглед на не частично припокриване. Например, Windows-932 образува героите на един или два байта код. Дължината на последователност зависи от първия байт, така че водещите стойности байт в серия от два байта и един байт разединена. Въпреки това, стойността на един байт и зад байт последователност може да съвпадат. Това означава например, че търсенето характер г (код 44) може да намери това погрешно въвеждане във втората част на последователността на два байта характер "D" (код 84 44). За да разберете коя последователност е правилно, програмата трябва да се вземат предвид предишните байта.

Положението е сложно, ако мачът за началните и крайните байта. Това означава, че, за да се премахне неяснотата ще бъде обратно търсене, преди да достигнат в началото на текста или уникален код последователност. Това е не само неефективно, но не е защитена от възможни грешки, тъй като само една грешна байт до пълния текст е станал нечетлив.

Формат конвертиране на Unicode този проблем се избягва, тъй като стойността на водещия, последните, и един-единствен елемент на съхранение не са една и съща информация. Това гарантира, че всички Unicode за търсене и сравняване, никога не дава грешни резултати, дължащи се на съвпадението на различни части от кода характер. Фактът, че тези форми на кодиране се спазва принципа nenalozheniya, да ги отличава от другите източноазиатски многобайтови кодировки.

Друг аспект nonintersection Unicode кодиране е, че всеки герой има ясно определена граница. Това елиминира необходимостта да се сканира неопределен брой предишни символи. Тази функция понякога се нарича самостоятелно тактовата кодиране. Нарушаване на кодови единици ще въведе изкривяване на само един символ, и околните героите са все още непокътнати. В превръщането на формат 8-битов, ако сочи указателят на байт, като се започне с 10xxxxxx (в двоичен код), за да открият се изисква в началото на символа за една до три обратни преходи.

съгласуваност

Unicode Consortium напълно подкрепя всички форми на 3 кодировки. Важно е да не се противопоставя на UTF-8 и Unicode, както всички формати преобразуване - еднакво валидни форми на изпълнение на кодиране на знаците, стандарта Unicode.

Байт ориентиране

Да представлява UTF-32 знака, ще се нуждаят от 32-битов код звено, което съвпада с кода Unicode. UTF-16 - един до два 16-битови блокове. А UTF-8 се използва до 4 байта.

UTF-8 кодиране е проектиран да бъде съвместим със системи байт ориентирани ASCII-базирана. Повечето от съществуващия софтуер и практиката на информационните технологии за дълго време разчиташе на представителството на героите в последователност от байтове. Множество протоколи зависи от постоянството на ASCII кодиране и използва всяка възможност да се избегне специални контролни знаци. Един прост начин да се адаптира към ситуации Unicode може, като се използва 8-битов кодиране за представяне на Unicode символи, всеки еквивалентен ASCII знак или символ контрол. За тази цел, и е UTF-8 кодиране.

променлива дължина

UTF-8 - кодиране с променлива дължина, състояща се от 8-битови блокове за съхранение, горните битове, които показват за коя част от последователността на всеки отделен байт принадлежи. Един набор от стойности, разпределени към първия елемент на код последователност, друга - за следващия. Това осигурява disjointness кодиране.

ASCII

UTF-8 кодиране се поддържат напълно ASCII кодове (0x00-0x7F). Това означава, че символите Unicode U + 0000-U + 007F се превръща в един байт 0x00-0x7F UTF-8 и по този начин стават неразличими от ASCII. Освен това, за да се избегне двусмислието, стойността 0x00-0x7F не се използва повече от един байт представителство на Unicode символа. За да се кодира символи neideograficheskih различни от ASCII, като се използва поредица от два байта. Символи варират U + 0800-U + FFFF са представени от три байта, и допълнителни кодове с повече от U + FFFF изискват четири байта.

сфера на приложение

UTF-8 кодиране обикновено се дава предпочитание в HTML протокол, и други подобни.

XML стана първият стандарт с пълна поддръжка на UTF-8 кодиране. Организациите по стандартизация също го препоръчват. Подкрепа проблем в URL адреса, който е различен от ASCII-символи, е решен, когато W3C консорциума и IETF инженерна група стигна до споразумение за кодиране на всички URL адреси изключително в UTF-8.

Съвместимост с ASCII улеснява прехода към новия софтуер. С UTF-8 работи повечето текстови редактори, включително JEdit, Emacs, BBEdit, Eclipse, и "Notepad" на операционната система Windows. Никоя друга форма на кодиране Unicode не може да се похвали на такава подкрепа на инструмента.

кодираща предимство е, че тя се състои от последователност от байтове. С UTF-8 низ е лесно да се работи в C и други езици за програмиране. Това е единствената форма на кодиране, редът не изисква етикети байта BOM или декларация за кодиране в XML.

самостоятелно синхронизация

В среда, в която използва 8-битови символи на обработката в сравнение с други многобайтови знаци, UTF-8 има следните предимства:

  • първият байт код последователност съдържа информация за дължина. Това увеличава ефективността на търсене.
  • Опростена намери началото на символа за начален байт е ограничено до определен диапазон от стойности.
  • Не пресичане байтове стойности.

Сравнете предимствата

UTF-8 кодиране е компактен. Но, когато се използва за кодиране на източноазиатски знаци (китайски, японски, корейски, китайски писане с помощта на знаци), използвани 3-байтове последователности. Също UTF-8 кодиране е по-малък други форми на кодиране скорост на обработка. Двоично сортиране линии води до същия резултат като двоично сортиране Unicode.

Схемата за кодиране на символите

Схемата за кодиране на символите включва кодиращи символи форма и метод за един байт място кодови единици. За да се определи схемата за кодиране Unicode стандарт осигурява използването на първоначална марка байт поръчка (BOM, Byte, за марки).

Когато BOM в UTF-8 функция маркер се ограничава само с оглед на използването на форми на кодиране. Проблеми при определяне на къс UTF-8 са, както неговия размер, кодираща единица е един байт. Използване на BOM за тази форма на кодиране не е нито необходимо, нито препоръчително. BOM може да възникне в текста да се преобразува от други кодирания използват марка байт за подпис или за UTF-8 кодиране. Е поредица от 3 байта EF BB 16 16 BF 16.

Как да настроите UTF-8 кодиране

В HTML кодиране UTF-8 е инсталиран със следния код:

глава

Мета HTTP-екв = "Content-Type" съдържание = "текст / HTML; набор знаци = UTF-8" ˃

В PHP UTF-8 кодиране е разположен използване на функцията за глава () в началото на файла, след определяне грешка стойност изходното ниво:

˂? Php

error_reporting (-1);

хедър ( "Content-Type: текст / HTML; набор знаци = UTF-8 ');

За да се свържете към база от данни UTF-8 кодиране се задава:

˂? Php

mysql_set_charset ( "utf8 ');

Кодирането на CSS-файл е UTF-8 символа, се изпълнява по следния начин:

@charset "UTF-8";

Когато запишете файлове от всякакъв тип избират UTF-8 кодиране без BOM, в противен случай сайтът няма да работи. За да направите това в DreamWeave трябва да изберете елемент от менюто "модификации - Page Properties - Заглавие / Encoding", за да промените кодирането на UTF-8. Следван от презареждането на страницата, махнете отметката от "Connect Unicode подпис (BOM)» и приложите промените. Ако някой текст на страница или в база данни е въведена друга форма на кодиране, че е необходимо да въведете отново или повторно кодиране. Когато работите с регулярни изрази, не забравяйте да използвате модификатора ф.

Можете също така да запишете файла в UTF-8 кодиране в "Notepad" на Windows. След като изберете елемент от менюто "Файл - Съхраняване като ...", за да инсталирате необходимата форма на кодиране и запишете файла в UTF-8.

В текстов редактор Notepad ++, ако зададете различни от UTF-8, чрез опцията в менюто "Преобразуване в UTF-8 без BOM» променят характера и спасяване в UTF-8.

няма алтернатива

В контекста на глобализацията, където ще бъдат изтрити политически и езикови граници, набори знаци, които имат местни характеристики, са от голяма полза. Unicode е единен набор символи, които поддържат всички локализации. А UTF-8 - пример за правилното прилагане на Unicode, което е:

  • Тя поддържа широк набор от инструменти, включително съвместимост с ASCII кодиране;
  • Тя е устойчива на изкривяване на данните;
  • прост и ефективен при лечение;
  • е платформено независим.

С появата на UTF-8 дебат за каква форма на кодиране или набор от символи е по-добре, той става безсмислен.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 bg.birmiss.com. Theme powered by WordPress.