J'ai un problème avec StreamWriter. J'utilise Visual Studion 2010 et 2015, .NET Framework 4.0. Voici l'exemple de mon code pour écrire un fichier journal:C# La chaîne d'entrée StreamWriter n'est pas la même sur la chaîne de sortie du fichier
using (StreamWriter swErr = new StreamWriter(HostingEnvironment.MapPath("~/Logs/") +
DateTime.Now.ToString("yyyyMMdd") + ".log", true, Encoding.Default))
{
if (!string.IsNullOrEmpty(errMsg))
swErr.WriteLine(DateTime.Now.ToString("HH:mm:ss " + errMsg));
if (result != null && result.Count > 0)
foreach (Mandrill.EmailResult x in result)
{
stat = string.Format("{0} | {1} | {2} | {3}",
x.Id, x.Email, x.Status, x.RejectReason ?? "-"
);
Console.WriteLine(stat);
swErr.WriteLine(DateTime.Now.ToString("HH:mm:ss " + stat));
}
if (!string.IsNullOrEmpty(errMsg) || (result != null && result.Count > 0))
swErr.WriteLine("---");
}
Pour une raison quelconque, est l'échantillon ici attendu vs sortie réelle de ce code:
Expected OUTPUT:
10:10:02 e7424f10d1ee431fb69d9014265b278a | [email protected] | Sent
----------
ACTUAL OUTPUT
10:10:02 e742431091ee4313b6999014265b278a | [email protected] | SenA
----------
Pour une raison quelconque, je ne sais pas il convertit un caractère en un nombre aléatoire ou une lettre (s). J'ai essayé de supprimer le paramètre de StreamWriter pour l'encodage, également essayé de passer et Encoding.UTF8
mais c'est toujours la même chose.
Je pense que ma syntaxe est OK et j'ai géré la disposition du StreamWriter correctement.
J'espère que n'importe qui peut m'aider à ce sujet.
Merci!
Avez-vous des caractères spéciaux en entrée? – A3006
Encore une chose, si vous essayez d'utiliser File.WriteAllText(), quelle est la sortie? – A3006
Je n'ai aucun caractère spécial. En outre, le fichier chargé sur le chemin sur streamWriter est inexistant ou existant. Je vais essayer d'utiliser ce que vous suggérez et voir ce qui se passe. –