Портирую приложение с Delphi 7 на XE2. Где было ANSI, там становится Юникод, ну и естественно, где–то от такого безоговорочного перехода ничего не изменится, а где–то, особенно, во всём, что связано с сетью, однобайтовые строки должны такими и остаться. Довольно полезен при миграции модуль AnsiStrings, в котором можно найти то, что в SysUtils осталось только для UnicodeString. Но вот ведь западло: AnsiStrings.Format умеет конвертировать UnicodeString, но сыплет exception при попытке использовать в роли %s WideChar, PWideChar или WideStrings:
SysUtils AnsiString: Ansi
SysUtils WideString: Wide
SysUtils UnicodeString: Unicode
SysUtils AnsiChar: A
SysUtils WideChar: W
SysUtils PAnsiChar: Ansi
SysUtils PWideChar: Wide
AnsiStrings AnsiString: Ansi
AnsiStrings WideString: Format '%s' invalid or incompatible with argument
AnsiStrings UnicodeString: Unicode
AnsiStrings AnsiChar: A
AnsiStrings WideChar: Format '%s' invalid or incompatible with argument
AnsiStrings PAnsiChar: Ansi
AnsiStrings PWideChar: Format '%s' invalid or incompatible with argument