Разбираем, как компьютеры превращают байты в символы и обратно: чем отличаются
ASCII,
UTF-8 и
UTF-16, что такое
BOM и порядок байтов (Endian), где какие кодировки применять, и как явно задавать кодировку в C# через
System.Text.Encoding. Покажем практические примеры с
StreamReader/
StreamWriter, методы
File.WriteAllText/
File.ReadAllText, а также разберём, откуда берутся "кракозябры" при несовпадении кодировок. В конце — сводная таблица сравнения.