| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | using System.Text;using MediaBrowser.Model.IO;using MediaBrowser.Model.Text;namespace Emby.Common.Implementations.TextEncoding{    public class TextEncoding : ITextEncoding    {        private readonly IFileSystem _fileSystem;        public TextEncoding(IFileSystem fileSystem)        {            _fileSystem = fileSystem;        }        public Encoding GetASCIIEncoding()        {            return Encoding.ASCII;        }        public Encoding GetFileEncoding(string srcFile)        {            // *** Detect byte order mark if any - otherwise assume default            var buffer = new byte[5];            using (var file = _fileSystem.OpenRead(srcFile))            {                file.Read(buffer, 0, 5);            }            if (buffer[0] == 0xef && buffer[1] == 0xbb && buffer[2] == 0xbf)                return Encoding.UTF8;            if (buffer[0] == 0xfe && buffer[1] == 0xff)                return Encoding.Unicode;            if (buffer[0] == 0 && buffer[1] == 0 && buffer[2] == 0xfe && buffer[3] == 0xff)                return Encoding.UTF32;            if (buffer[0] == 0x2b && buffer[1] == 0x2f && buffer[2] == 0x76)                return Encoding.UTF7;            return null;        }    }}
 |