en utilisant (StreamWriter sw = File.CreateText (@ "d:DefaultUTF8.txt"))
{
sw.Write("privé");
}
en utilisant(StreamWriter sw=new StreamWriter (@"d:StreamUTF8.txt",
faux,System.Text.Encoding.UTF8))
{
sw.Write("privé");
}
en utilisant (System.IO.FileStream fs = System.IO.File.Create (@"d:ByteUTF8.txt"))
{
byte[] info = System.Text.Encoding.UTF8.GetBytes("private");
fs.Write(info, 0, info.Length);
}
J'ai toujours pensé que les résultats des trois méthodes ci-dessus sont les mêmes et qu'il n'y a pas de différence. Aujourd'hui, je sais que ce n'est pas le cas Haha, si vous pensez que cette question est naïve, vous n'avez pas besoin de baisser les yeux
. les résultats 1 et 3 sont les mêmes, les deux sont E7 81.
Et 2 aura un ESPACE SANS RUPTURE DE LARGEUR ZÉRO supplémentaire, qui est EF BB BF
Lorsque nous devons utiliser Byte Order Mark pour indiquer la méthode de codage du fichier, veuillez utiliser la méthode 2. Ce
qui précède s'applique également à UNICODE indiquant Big-Endian et Little-Endian.
http://www.cnblogs.com/jjstar/archive/2006/12/18/595812.html