La création d'une UTF8 fichier texte au lieu de la norme ANSI

J'ai ce bout de code à écrire un fichier en mode asynchrone:

    private static async Task WriteTextAsync(string filePath, string text)
    { //Writes to our output files
        byte[] encodedText = Encoding.UTF8.GetBytes(text);
        using (FileStream sourceStream = new FileStream(filePath,
            FileMode.Create, FileAccess.Write, FileShare.None,
            bufferSize: 4096, useAsync: true))
        {
            await sourceStream.WriteAsync(encodedText, 0, encodedText.Length);
        };
    }

Le texte créé de fichier est un format ANSI et malgré le fait d'avoir mis le Encoding.UTF8. Il y a 15 constructeurs surchargés pour la FileStream classe, et ce n'est pas du tout évident pour moi où je dois définir ce si pas sur le texte codé.

Je peux dire que le fichier est ANSI, parce que quand je l'ouvre dans TextPad et afficher le fichier des statistiques qu'il a listes ANSI que le Jeu de codes:

La création d'une UTF8 fichier texte au lieu de la norme ANSI

D'avoir des problèmes, parce que MySQL LOAD INFILE n'est pas de la lecture du fichier correctement, après avoir lu les réponses que je crois qu'il a quelque chose à voir avec la NOMENCLATURE, mais pas sûr.

J'ai essayé ce (BOM):

        byte[] encodedText = new byte[] { 0xEF, 0xBB, 0xBF }.Concat(Encoding.UTF8.GetBytes(text)).ToArray();
        using (FileStream sourceStream = new FileStream(filePath,
            FileMode.Create, FileAccess.Write, FileShare.None,
            bufferSize: 4096, useAsync: true))
        {
            await sourceStream.WriteAsync(encodedText, 0, encodedText.Length);
        };

Textpad alors vu comme de l'utf-8, MySQL LOAD INFILE encore échoué. Réenregistrés dans Textpad, et MySQL vu correctement.

Code modifié:

        using (TextWriter writer = File.CreateText(filePath))
        {
            await writer.WriteAsync(text);
        }

Cela semblait fonctionner dans les deux. Je ne suis pas sûr de ce que le problème est avec MySQL LOAD INFILE à ce sujet.

Comment pouvez-vous dire c'est ANSI?
Mise à jour de réponse.
Re votre edit: textpad ne peut pas dire c'est de l'UTF-8, à moins qu'il y a un MOB, ou les caractères ci-dessus 127. ASCII, ANSI et UTF-8 tous identiques à 100% si tous les personnages sont dans la plage 0-127 (en supposant sans BOM)

OriginalL'auteur user17753 | 2012-10-23