Версии Delphi до Delphi 2009 do имеют встроенную поддержку Unicode. Тип WideString
был доступен начиная с Delphi 4, я думаю, возможно, раньше. WideString
не так хорош, как новый тип UnicodeString
, но он по-прежнему содержит 16-битные символы Юникода, и вы можете привести его к типу PWideChar
для отправки строк в функции API Юникода , Модуль Windows
объявляет большинство «широких» версий функций API, и ничто не мешает вам объявить другие функции самостоятельно, если вы обнаружите, что некоторые из них отсутствуют.
В предыдущих версиях отсутствует поддержка Юникода в VCL. Для этого вы можете использовать элементы управления Tnt Unicode . Раньше они были бесплатными. Похоже, есть несколько мест, где по-прежнему доступна последняя бесплатная версия: (1) , (2) .
JCL имеет несколько модулей для работы с Unicode. Устройство JclWideStrings
имеет в основном легкие функции полезности. Модуль JclUnicode
является более полным, но он также включает значительный ресурс для определения свойств символов всех символов Юникода.
С помощью JCL у классов есть несколько вариантов хранения списков значений WideString
. Я думаю, что Delphi 7 даже поставляется с классом для этого.
Не думайте, что только потому, что у вас нет Delphi 2009, вы не можете написать программу на Unicode.
Если у вас есть значение WideString
, и вы хотите закодировать его как UTF-8, тогда вызовите функцию Utf8Encode
. Он вернет значение AnsiString
или, возможно, Utf8String
, если ваша версия Delphi объявит этот тип. Однако это не то же самое, что Delphi 2009 Utf8String
. Delphi 2009 будет автоматически преобразовываться в UnicodeString
или AnsiString(x)
и наоборот в инструкциях присваивания. Предыдущие версии имеют только один тип AnsiString
, поэтому вам нужно отслеживать, какие переменные содержат данные UTF-8, а какие - данные Ansi. (Венгерская запись в именах переменных и параметров может помочь вам отслеживать.) И, конечно же, есть функция Utf8Decode
для преобразования данных UTF-8 обратно в WideString
.
Для обработки других кодировок символов вы должны проверить Open XML , бесплатную библиотеку XML для Delphi. Как часть обработки XML, он поддерживает преобразование между 70 различными кодировками.