/// <summary> /// Initializes a new instance of the <see cref="XmlEncodingBOM"/> class. /// </summary> XmlEncodingBOM() { DefaultXmlEncodings = new XmlEncodingBOM[10] { new XmlEncodingBOM("UTF-8", Encoding.UTF8, 3, new byte[3] { 0xEF, 0xBB, 0xBF }), new XmlEncodingBOM("UTF-16", Encoding.BigEndianUnicode, 2, new byte[2] { 0xFE, 0xFF }), new XmlEncodingBOM("UTF-16", Encoding.Unicode, 2, new byte[2] { 0xFF, 0xFE }), new XmlEncodingBOM("UTF-32", Encoding.UTF32, 4, new byte[4] { 0x00, 0x00, 0xFE, 0xFF }), new XmlEncodingBOM("UTF-32", Encoding.UTF32, 4, new byte[4] { 0xFF, 0xFE, 0x00, 0x00 }), new XmlEncodingBOM("UTF-7", Encoding.UTF7, 4, new byte[4] { 0x2B, 0x2F, 0x76, 0x38 }), new XmlEncodingBOM("UTF-7", Encoding.UTF7, 4, new byte[4] { 0x2B, 0x2F, 0x76, 0x39 }), new XmlEncodingBOM("UTF-7", Encoding.UTF7, 4, new byte[4] { 0x2B, 0x2F, 0x76, 0x2B }), new XmlEncodingBOM("UTF-7", Encoding.UTF7, 4, new byte[4] { 0x2B, 0x2F, 0x76, 0x2F }), new XmlEncodingBOM("ASCII", Encoding.ASCII, 0, null) }; }
/// <summary> /// Gets the bom string. /// </summary> /// <param name="ByteArray">The byte array.</param> /// <returns></returns> public static string GetBOMString(byte[] ByteArray) { byte[] fileData; string strOut; XmlEncodingBOM encBOM = XmlEncodingBOM.GetEncodingBOM(ByteArray); int FileSize = ByteArray.Length; if (encBOM.BOMLength > 0) { fileData = new byte[FileSize - encBOM.BOMLength]; Array.Copy(ByteArray, encBOM.BOMLength, fileData, 0, FileSize - encBOM.BOMLength); } else { fileData = ByteArray; } strOut = encBOM.TextEncoding.GetString(fileData); return(strOut); }