Primeiro de tudo: seu título usa / d ANSI, enquanto no texto você se refere a ASCII. Observe que ANSI não é igual a ASCII. ANSI incorpora o conjunto ASCII. Mas o conjunto ASCII é limitado aos primeiros 128 valores numéricos (0 - 127).
Se todos os seus dados estiverem restritos a ASCII (7 bits), não importa se você usa UTF-8, ANSI ou ASCII, pois ambos ANSI e UTF-8 incorporam o conjunto ASCII completo. Em outras palavras: os valores numéricos de 0 até 127, inclusive, representam exatamente os mesmos caracteres em ASCII, ANSI e UTF-8.
Se você precisar de caracteres fora do conjunto ASCII, precisará escolher uma codificação. Você pode usar o ANSI, mas depois enfrenta os problemas de todas as diferentes páginas de código. Criar um arquivo na máquina A e lê-lo na máquina B pode / produzirá textos engraçados se essas máquinas estiverem configuradas para usar páginas de códigos diferentes, simples porque o valor numérico nnn representa caracteres diferentes nessas páginas de código.
Esse "inferno de página de código" é a razão pela qual o padrão Unicode foi definido. UTF-8 é apenas uma codificação única desse padrão; existem muito mais. O UTF-16 é o mais amplamente utilizado, pois é a codificação nativa do Windows.
Portanto, se você precisar suportar algo além dos 128 caracteres do conjunto ASCII, meu conselho é usar o UTF-8 . Dessa forma, não importa e você não precisa se preocupar com qual página de código seus usuários configuraram seus sistemas.