Как работают новые типы строк в Delphi 2009/2010?

Мне нужно преобразовать большое унаследованное приложение в Delphi 2009, которое использует строки, данные AnsiStrings, WideStrings и UTF8 повсюду, и мне трудно понять, как работают новые типы строк и как их следует использовать.

Приложение полностью поддерживает Unicode с использованием TntUnicodeControls, и существуют сторонние библиотеки DLL, для которых требуются строки в определенных кодировках, в основном UTF8 и UTF16, что делает задачу преобразования не такой тривиальной, как можно было бы предположить.

Особенно у меня проблемы с вызовами C DLL и выбором правильного типа. У меня также создается впечатление, что происходит много неявных преобразований строк, потому что одна из DLL, кажется, всегда получает строки в кодировке UTF-8, независимо от того, как кодируется строка Delphi.

Может ли кто-нибудь представить краткий обзор новых типов строк Delphi 2009 UnicodeString и RawByteString, возможно, некоторые советы по использованию и возможные подводные камни при преобразовании приложения до 2009 года?

Ответы на вопрос(5)

Ваш ответ на вопрос