Каков наилучший способ преобразования массива байтов, объявленных как TBytes, в строку Unicode в Delphi 2009? В моем конкретном случае массив TBytes уже содержит данные в кодировке UTF-16 (2 байта на каждый символ).
Так как TBytes не хранит нулевой терминатор, следующее будет работать только в том случае, если массив окажется с # 0 в памяти рядом с ним.
MyString := string( myBytes );
Если нет, строковый результат будет иметь случайные данные в конце (это также может вызвать нарушение чтения в зависимости от того, сколько времени потребовалось, чтобы встретить # 0 в памяти).
Если я использую функцию ToBytes, она возвращает 't' # 0'e '# 0's' # 0't '# 0, что не то, что я хочу.