The difference is that UTF-8 and “ANSI” (a Microsoft misnomer for various 8-bit encodings) are completely different encodings, though they coincide for the ASCII code range, 0x00 to 0x7F.
It is incorrect to label an “ANSI” file as UTF-8 encoded. The error does not cause observable effects if the data actually contains ASCII characters only or, in most cases, if the file is sent with HTTP headers which specify the correct encoding.
There is no reason not to use BOM for UTF-8 encoded HTML files. Pages that claim otherwise are based either on information about browsers that lost all practical impact years ago or on confusing HTML with PHP. In a PHP file, BOM may cause problems, because PHP software does not handle BOM correctly, i.e. does not remove it when inserting the content of a file in another.
Notepad is indeed unable to save the file as UTF-8 without BOM. Therefore, when creating or editing PHP files, use other programs, such as Notepad++. If you have to use Notepad, you just need to adapt to the limitations: use “ANSI” (after finding out what it is in your environment – it could be windows-1252, or something else), declare it in HTTP headers and meta
tags, and use character references to represent characters that cannot be represented in “ANSI”.