Zestawy znaków wielobajtowych i jednobajtowych
Zestaw znaków ASCII definiuje znaki w zakresie 0x00 — 0x7F. Istnieje wiele innych zestawów znaków, przede wszystkim europejskich, które definiują znaki w zakresie 0x00 - 0x7F identycznie z zestawem znaków ASCII, a także definiują rozszerzony zestaw znaków z 0x80 - 0xFF. 8-bitowy zestaw znaków jednobajtowych (SBCS) jest wystarczający do reprezentowania zestawu znaków ASCII i zestawów znaków dla wielu języków europejskich. Jednak niektóre nieeuropejskie zestawy znaków, takie jak japoński Kanji, zawierają o wiele więcej znaków niż można przedstawić w schemacie kodowania jednobajtowego, dlatego wymagają kodowania wielobajtowego zestawu znaków (MBCS).
Uwaga
Wiele procedur SBCS biblioteki czasu wykonywania firmy Microsoft obsługuje odpowiednio wiele bajtów, znaków i ciągów. Wiele zestawów znaków wielobajtowych definiuje zestaw znaków ASCII jako podzbiór. W wielu zestawach znaków wielobajtowych każdy znak w zakresie 0x00 — 0x7F jest identyczny z znakiem, który ma tę samą wartość w zestawie znaków ASCII. Na przykład w ciągach znaków ASCII i MBCS znak jednobajtowy (\0) ma wartość 0x00 i wskazuje znak null zakończenia.
Zestaw znaków wielobajtowych może składać się z znaków 1-bajtowych i 2-bajtowych. Ciąg wielobajtowy może zawierać kombinację znaków jednobajtowych i dwubajtowych. Dwubajtowy znak wielobajtowy ma bajt ołowiu i bajt końcowy. W określonym zestawie znaków wielobajtowych bajty ołowiu należą do określonego zakresu, podobnie jak bajty końcowe. Gdy te zakresy nakładają się na siebie, może być konieczne oszacowanie kontekstu w celu określenia, czy dany bajt działa jako bajt ołowiu, czy bajt końcowy.
Zobacz też
Internacjonalizacja
Procedury czasu wykonywania języka Universal C według kategorii