Witajcie,
Czy rozmiar null terminatora w zależności od UTF się różni? Znaczy w ASCII wiadomo jest to bajt = 0, ale czy w UTF16 i 32 są to odpowiednio 2 i 4 czy też 1? Piszę dekodowanie, więc muszę zrobić StrLen dla UTF. Albo gdzie to sprawdzić?
Znak o kodzie U+0000 zakodowany w UTF-16 będzie się składał z dwóch bajtów o wartości 0, a w UTF-32 z czterech.
Albo gdzie to sprawdzić?
UTF-8 (nie wiem jak reszta, ale pewnie podobnie) posiada znak null
, ale formalnie nie wyznacza on końca ciągu znaków - długość należy trzymać osobno, np. jako struktura:
struct Utf8String {
size_t length;
char* data;
}
Choć niektóre implementacje faktycznie (błędnie) wykorzystują go jako terminator.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.