It's a little difficult to say where to start, as there are a lot of assumptions in the game.
In C, as we know and love it, there is a <char 'data type. In all commonly used implementations, this data type contains 8-bit bytes.
In a language, unlike any library functions that you use, these things are two integers. They have no "symbolic" semantics.
"str" "is" (, strcmp, isalnum), .
C , , Unicode. . - . . if (charvalue == 'a'). - .
.
UTF-8? , . Unicode ( 32- ) , . , .
, , , , , , .
32- (UTF-32), , , . , . , gcc wchar_t 32- , Microsoft Visual Studio , , 16- (UTF-16 UCS-2, ).
, Windows C, 8- . , Unicode UTF-8, Unicode 8- . UTF-8 1 4 . ISO-646 ('ascii') , , .
UTF-8, UTF-8, lib . UTF-8, , , ICU ICONV.
, . . open(2) Windows, . UTF-8, , UTF-8.
fopen(3), , . , , Big5, , fopen, , , . ICONV ICU UTF-8 .
" ". . UTF-8 argv UTF-8. 0 UTF-8. UTF-8, setlocale UTF-8, UTF-8 argv. , , , , .