1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| * 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;
* }
*
* .... |
Partager