- using System.Text;
- using System.IO;
-
- ....
-
-
- /// <summary>
- /// Permet de tester l'encodage utilisé pour le fichier texte dont le chemin est fourni
- /// </summary>
- /// <param name="CheminFichier">Chemin du fichier</param>
- /// <returns>Encodage du fichier Texte</returns>
- private Encoding ObtientENcoding(string CheminFichier)
- {
- Encoding enc = null;
- FileStream file = new FileStream(CheminFichier, FileMode.Open, FileAccess.Read, FileShare.Read
- if (file.CanSeek)
- {
- byte[] bom = new byte[4]; // Get the byte-order mark, if there is one
- file.Read(bom, 0, 4);
- if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf) // utf-8
- {
- enc = Encoding.UTF8;
- }
- else if ((bom[0] == 0xff && bom[1] == 0xfe) || // ucs-2le, ucs-4le, and ucs-16le
- (bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff)) // ucs-4
- {
- enc = Encoding.Unicode;
- }
- else if (bom[0] == 0xfe && bom[1] == 0xff) // utf-16 and ucs-2
- {
- enc = Encoding.BigEndianUnicode;
- }
- else // ANSI, Default
- {
- enc = Encoding.Default;
- }
- // Now reposition the file cursor back to the start of the file
- file.Seek(0, SeekOrigin.Begin);
- }
- else
- {
- // The file cannot be randomly accessed, so you need to decide what to set the default to
- // based on the data provided. If you're expecting data from a lot of older applications,
- // default your encoding to Encoding.ASCII. If you're expecting data from a lot of newer
- // applications, default your encoding to Encoding.Unicode. Also, since binary files are
- // single byte-based, so you will want to use Encoding.ASCII, even though you'll probably
- // never need to use the encoding then since the Encoding classes are really meant to get
- // strings from the byte array that is the file.
-
- enc = Encoding.Default;
- }
- return enc;
- }
-
- ....
using System.Text;
using System.IO;
....
/// <summary>
/// Permet de tester l'encodage utilisé pour le fichier texte dont le chemin est fourni
/// </summary>
/// <param name="CheminFichier">Chemin du fichier</param>
/// <returns>Encodage du fichier Texte</returns>
private Encoding ObtientENcoding(string CheminFichier)
{
Encoding enc = null;
FileStream file = new FileStream(CheminFichier, FileMode.Open, FileAccess.Read, FileShare.Read
if (file.CanSeek)
{
byte[] bom = new byte[4]; // Get the byte-order mark, if there is one
file.Read(bom, 0, 4);
if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf) // utf-8
{
enc = Encoding.UTF8;
}
else if ((bom[0] == 0xff && bom[1] == 0xfe) || // ucs-2le, ucs-4le, and ucs-16le
(bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff)) // ucs-4
{
enc = Encoding.Unicode;
}
else if (bom[0] == 0xfe && bom[1] == 0xff) // utf-16 and ucs-2
{
enc = Encoding.BigEndianUnicode;
}
else // ANSI, Default
{
enc = Encoding.Default;
}
// Now reposition the file cursor back to the start of the file
file.Seek(0, SeekOrigin.Begin);
}
else
{
// The file cannot be randomly accessed, so you need to decide what to set the default to
// based on the data provided. If you're expecting data from a lot of older applications,
// default your encoding to Encoding.ASCII. If you're expecting data from a lot of newer
// applications, default your encoding to Encoding.Unicode. Also, since binary files are
// single byte-based, so you will want to use Encoding.ASCII, even though you'll probably
// never need to use the encoding then since the Encoding classes are really meant to get
// strings from the byte array that is the file.
enc = Encoding.Default;
}
return enc;
}
....