Jak działają nowe typy łańcuchów w Delphi 2009/2010?

Muszę przekonwertować dużą starszą aplikację na Delphi 2009, która używa ciągów znaków, danych AnsiStrings, WideStrings i UTF8 w całym miejscu i trudno mi zrozumieć, jak działają nowe typy łańcuchów i jak powinny być używane.

Aplikacja w pełni obsługuje Unicode za pomocą TntUnicodeControls i istnieją biblioteki DLL innych firm, które wymagają ciągów znaków w określonych kodowaniach, głównie UTF8 i UTF16, co sprawia, że ​​zadanie konwersji nie jest tak trywialne, jak mogłoby się wydawać.

Szczególnie mam problemy z połączeniami DLL DLL i wybieram odpowiedni typ. Odnoszę również wrażenie, że zachodzi wiele niejawnych konwersji łańcuchów, ponieważ jedna z bibliotek DLL wydaje się zawsze otrzymywać ciągi kodowane w UTF-8, niezależnie od tego, jak kodowany jest łańcuch Delphi.

Czy ktoś może przedstawić krótki przegląd nowych typów łańcuchów Delphi 2009 UnicodeString i RawByteString, być może jakieś wskazówki dotyczące użytkowania i możliwe pułapki podczas konwersji aplikacji sprzed 2009 roku?

questionAnswers(5)

yourAnswerToTheQuestion