ПредишенСледващото

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

За да разберем наистина Unicode трябва най-малко повърхностно да си представя характеристиките на всички скриптове, което позволява стандарт. Но това е необходимо за всеки разработчик? Ние казваме, че има. За да използвате Unicode в повечето ежедневни задачи, достатъчно, за да притежава един разумен минимум информация, а след това отиде в стандарта, колкото е необходимо.

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

Защо е било необходимо Unicode?

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

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

Този подход като цяло и еднобайтовата характер определя като имаше редица недостатъци:

  1. Това е възможно да се работи едновременно с само 256 символа, с първия 128 са запазени за символи на латиница и контрол, както и през втората половина освен национален герой трябваше да намери място за псевдо-герои (╔ ╗).
  2. Шрифтове са обвързани с конкретна кодиране.
  3. Всеки кодиращ представлява различен набор от символи и превръщане от една към друга е възможно само с частични загуби, когато няма символи са заменени с подобен графично.
  4. Прехвърляне на файлове между устройства, работещи с различни операционни системи е трудно. Необходимо е да има програма, конвертор, или плъзнете файл с допълнителни шрифтове. Съществуването на Интернет като знаем, че това е невъзможно.
  5. В света има не-буквени писмени системи (йероглифното писмо), които са с един байт кодиране невъобразим по принцип.

Основните принципи на Unicode

Ние всички разбираме, че компютърът не знае или знае от всеки идеално същество, и работи с битове и байтове. Но системата на компютъра, докато е създадена от хора, а не машини, както и за вас, а понякога е по-удобно да работят спекулативни понятия и след това се премести от резюмето на бетона.

Важно! Една от основните принципи на философията в Unicode е ясно разграничение между героите и техните представителство в компютър и дисплей на устройството за възпроизвеждане на.

Въвежда концепцията за абстрактно Unicode характер, което съществува само под формата на спекулативни понятия и съгласие между хората, определени стандарт. Всеки Unicode характер се определя неотрицателно цяло число, посочено му позиция код (код точка).

Например, Unicode характер U + 041F - е на кирилица писмо капитал П. Има няколко начини за представяне на героите в паметта на компютъра, дори и хиляди начини да го показват на екрана. Но в същото P, то е в Африка ще бъде U или U + 041F.

Unicode е необходимо възможно най-малък за всеки разработчик

Той е добре известен капсулиране или разделяне на интерфейс от изпълнение - концепция, доказано програмиране.

Оказва се, че се ръководи от стандарта, всеки текст може да се кодира като последователност от Unicode символа

напише на лист, опаковани в плик и да изпрати до всяка точка на Земята. Ако те знаят за съществуването на Unicode, текстът ще се възприемат от тях точно по същия начин, както ние имаме с вас. Те няма да имат най-малко съмнение, че предпоследния символ - това е кирилица малка буква д (U + 0435), а не, да речем Латинска малка електронна (U + 0065). Моля, имайте предвид, че ние не сме говорили за представянето на байт.

Unicode код пространство

Unicode код пространство се състои от 1,114,112 кодовите точки в интервала от 0 до 10FFFF. От тях деветата версия на фиксирани стойности са възложени само 128 237. Част от пространството е запазено само за лична употреба и Unicode консорциум обещава никога да не се зададат стойности на позициите на тези специални области.

Ако искаме да се изпрати текстът по интернет, ние трябва да се кодира последователност от Unicode символи в последователност от байтове.

Unicode Standard включва описание на броя на Unicode знаци, като UTF-8 и UTF-16BE / UTF-16LE, което дава възможност за кодиране на всички космически код точки. Преобразуване между тези кодировки могат свободно да бъдат извършвани без загуба на информация.

Също така, никой не е отменена еднобайтови кодировки, но те ви позволяват да се кодират своите индивидуални и много малка част от Unicode-гама - 256 или по-малко код точки. За съществуването на такива кодировки и са на разположение на всички заинтересовани в таблицата, където всяка стойност е свързан с един байт Unicode символа (вж., Например CP1251.TXT). Въпреки ограниченията, еднобайтови кодировки са много практични, когато става въпрос за справяне с голям набор от едноезични текстова информация.

Имайте предвид, че UTF-8 - дължината на кодиране променлива. Всеки Unicode характер код представения на него кванти последователност с минимална дължина в един размер. Броят 8 показва квантов кодов бит дължина (код единица) - 8 бита. За семейството на кодировки UTF-16 код квантовата размер е съответно 16 бита. За UTF-32 - 32 бита.

За магазина приложения низ от данни обикновено се използват 16-битов Unicode кодиране поради своята простота, както и факта, че символите на основните световни системи за написването на шестнадесет малко кодиран размер. Например, Java за вътрешния представяне на линии успешно използва UTF-16. Операционната система Windows само по себе си също използва UTF-16.

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

дъното

Голяма част от информацията и че има смисъл да се даде кратко дестилация на всичко, което е написано по-горе:

  • Unicode постулира ясно разграничение между героите и техните представителство в компютър и дисплей на устройството за възпроизвеждане на.
  • Unicode код пространство се състои от 1,114,112 кодовите точки в интервала от 0 до 10FFFF.
  • Основна многоезичност равнина включва Unicode символи от 0000 до U + U + FFFF, които са кодирани в UTF-16, два байта.
  • Всеки Unicode кодиране на знаците ви позволява да се кодира цялото пространство от Unicode код точки и конвертиране между различни кодировки такива се извършва без загуба на информация.
  • Еднобайтовата кодировки позволяват кодират само една малка част от обхвата на Unicode, но могат да бъдат полезни при работа с големи обеми от едноезични медии.
  • UTF-8 кодиране и UTF-16 има променлива дължина код. В UTF-8, Unicode, всеки символ може да бъде кодиран с един, два, три или четири байта. В UTF-16 - две или четири байта.
  • вътрешен формат за съхраняване на текстова информация в рамките на едно приложение може да бъде произволно условие да работи правилно с цялата кодовите точки Unicode и никакви загуби при преноса трансграничен пренос на данни.

Кратка бележка за кодиране

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

На английски език терминология, има два различни глаголи се кодират и да се кодира, но дори и носители на езика често ги бъркат. Освен това, терминът набор от символи (характер комплект или набор от знаци) се използва като синоним на термина набор от кодирани символи (кодиран набор символи).

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

Подкрепете проекта - споделете линка, благодаря!