Delphi и кодиране Unicode, част от това, което аз кодиране Unicode, защо е необходимо и как

Възпроизвеждането и разпространението на тази статия е възможно, ако определянето на директната връзка с портала

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

Какво е Unicode кодиране

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

Предимства на Unicode

Преходът към Unicode в Делфи е съвсем естествено. Самата операционна система Windows поддържа напълно Unicode, така че дори и естествено, че приложения, изградени за нея, Unicode низ се използва като стандартен вид на линията. И ползите не са ограничени до само до Делфи възможност на разработчиците да използват един и същ тип низ, както в Windows.

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

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

За съществуващи приложения Delphi базирани на ANSI кодиране, способността да се локализира приложения и да ги разшири до Unicode-съвместим пазар приложения в бъдеще е много висока. А ако искате да се локализира на молбата, Delphi среда ви позволява да направите много лесно, особено по време на пряко развитие. Интегрирана преводи на околната среда (ITE) позволява да се преведе, изготвят, и разполагане на приложението директно в IDE, интегрирана развитие. Ако необходимите преводачески услуги извън него, IDE среда позволява износ проект във форма, която може да се използва от преводачи с молба за развръщане Външно Translation Manager (мениджър външни трансфери). Този инструмент работи във връзка с IDE среда Delphi и Delphi за околната среда и за околната среда C ++ Builder, което ви позволява да се локализира прилагането на последователна и лесно управление на процеса.

Малко терминология

Друг термин, който се отнася до Unicode - марка на байт поръчка (BOM), и е много кратък представка се използва в началото на текстов файл, за да определите типа кодиране, използван за текстовия файл. Нов клас TEncoding (ще бъдат обсъдени в част II) включва метод клас GetPreamble, която връща марка байт За дадена кодиране.

Нов тип UnicodeString

на стандартния тип низ в Делфи - нов тип UnicodeString. По подразбиране, видът UnicodeString е подобен на кодировката на UTF-16, същият, който се използва в Windows. Това се различава от предишната версия, в която на стандартния тип е тип AnsiString. По-рано, Delphi RTL библиотека за работа с Unicode тип данни на WideString, но този тип, за разлика от типа на AnsiString не се отчита броят на връзките, и поради това не е за разработчиците в Делфи тип низ по подразбиране.

Това означава, че следния код е даден на компилатора:

UnicodeString задача тип съвместим с всички други видове линии, но назначението между AnsiStrings UnicodeStrings и ще доведе до съответното преобразуване тип. По този начин, тип задача типа UnicodeString AnsiString може да доведе до загуба на данни. Това означава, че ако UnicodeString низ съдържа данни към горния байт, конвертиране на низ в низ AnsiString водят до загуба на по-старите байта данни.

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

Например, UnicodeString низови случаи все още може герои индекси. Да разгледаме следния код:

MyString: = "Това е низ";

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

заключение

Част II ще се занимае промени и актуализации Delphi Времетраене библиотека библиотеки, които опростяват работата с низове в Unicode.