Make a new empty text file with UTF-8 encoding and save it. Now look at the size of this file. It will be 3 bytes. See Figure 1 for a screenshot from Windows file explorer.
Makes one wonder from where the 3 bytes are coming when the file is absolutely empty.

At the same time if the ANSI encoding was used, the same file would have amounted to 0 bytes (See Figure 2).

The reason behind this is Byte Order Mark.
It is a sequence of bytes which (among other things) is used to convey the encoding used for the file to the programs that may use the file so that they can be processed accordingly.
Byte order mark for UTF-8 files is the byte sequence 0xEF,0xBB,0xBF. Which are hexadecimal values for 239, 187 and 191 respectively.
If you try printing these three characters as we normally do, it could look like this:
∩
╗
┐
Byte order mark can serve other purposes like specifying the endianness as well.
See: