En primer lugar: su título usa / d ANSI, mientras que en el texto se refiere a ASCII. Tenga en cuenta que ANSI no es igual a ASCII. ANSI incorpora el conjunto ASCII. Pero el conjunto ASCII está limitado a los primeros 128 valores numéricos (0 - 127).
Si todos sus datos están restringidos a ASCII (7 bits), no importa si usa UTF-8, ANSI o ASCII, ya que ANSI y UTF-8 incorporan el conjunto ASCII completo. En otras palabras: los valores numéricos 0 hasta 127 inclusive representan exactamente los mismos caracteres en ASCII, ANSI y UTF-8.
Si necesita caracteres fuera del conjunto ASCII, deberá elegir una codificación. Puede usar ANSI, pero luego se encuentra con los problemas de todas las páginas de códigos diferentes. Cree un archivo en la máquina A y léalo en la máquina B puede / producirá textos divertidos si estas máquinas están configuradas para usar páginas de códigos diferentes, simple porque el valor numérico nnn representa diferentes caracteres en estas páginas de códigos.
Este "infierno de la página de códigos" es la razón por la cual se definió el estándar Unicode . UTF-8 no es más que una codificación única de ese estándar, hay muchos más. UTF-16 es el más utilizado, ya que es la codificación nativa para Windows.
Entonces, si necesita admitir algo más allá de los 128 caracteres del conjunto ASCII, mi consejo es ir con UTF-8 . De esa manera, no importa y no tiene que preocuparse por la página de códigos que sus usuarios han configurado sus sistemas.