Jaki jest najlepszy sposób konwersji tablicy bajtów zadeklarowanych jako TBytes na ciąg znaków Unicode w Delphi 2009? W moim szczególnym przypadku tablica TBytes ma już zakodowane dane UTF-16 (2 bajty dla każdego znaku).Jaki jest najlepszy sposób konwertowania TBytes (UTF-16) na ciąg znaków?
Ponieważ TBytes nie przechowuje terminatora o wartości NULL, poniższe czynności będą działać tylko wtedy, gdy macierz będzie miała numer 0 w sąsiadującej z nią pamięci.
MyString := string(myBytes);
Jeśli nie, to wynik będzie mieć ciąg losowych danych na koniec (może to też prawdopodobnie spowodować naruszenie odczytu w zależności od tego, jak długo to trwało, napotyka # 0 w pamięci).
Jeśli używam funkcji ToBytes, to zwraca 't' # 0'e '# 0's' # 0't '# 0, co nie jest tym, czego chcę.
Thanks Bruce, ja poprawione moje pierwotne pytanie, jak to było za mało konkretne. Tablica TBytes jest zakodowana jako dane utf16, więc ToBytes nie działa. –
Słodki. Tak prosty jak 8 znaków: StringOf :) – Ampere