private async void OpenButton_Click(object sender, RoutedEventArgs e)
        {
            // Open a text file.
            Windows.Storage.Pickers.FileOpenPicker open =
                new Windows.Storage.Pickers.FileOpenPicker();
            open.SuggestedStartLocation =
                Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;
            open.FileTypeFilter.Add("*");

            Windows.Storage.StorageFile file = await open.PickSingleFileAsync();

            if (file != null)
            {
                //PlainText.Text = await FileIO.ReadTextAsync(file);
                var provider = new StorageFileDataProvider();
                var bytes    = await provider.LoadDataAsync(file);

                var reader = new EncodingReader();
                reader.AddBytes(bytes);

                byte[] bom = null;

                try
                {
                    ByteOrderMarks.ToList().ForEach(pair =>
                    {
                        var(key, value) = pair;

                        if (!bytes.AsSpan(0, value.Length).StartsWith(value.AsSpan(0, value.Length)))
                        {
                            return;
                        }

                        var encoding = key switch
                        {
                            ByteOrderMark.Utf8 => Encoding.UTF8,
                            ByteOrderMark.Utf16Be => Encoding.BigEndianUnicode,
                            ByteOrderMark.Utf16Le => Encoding.Unicode,
                            ByteOrderMark.Utf32Be => Encoding.UTF32,
                            ByteOrderMark.Utf32Le => Encoding.UTF32,
                            ByteOrderMark.Utf7A => Encoding.UTF7,
                            ByteOrderMark.Utf7B => Encoding.UTF7,
                            ByteOrderMark.Utf7C => Encoding.UTF7,
                            ByteOrderMark.Utf7D => Encoding.UTF7,
                            ByteOrderMark.Utf7E => Encoding.UTF7,
                            _ => Encoding.ASCII
                        };

                        documentViewModel.CurrentEncoding = encoding;

                        reader = new EncodingReader();
                        reader.AddBytes(bytes.AsSpan().Slice(value.Length).ToArray());
                        bom = value;
                    });
                }
                catch (Exception ex)
                {
                    Logger.LogError(new EventId(), $"Error loading {file.Name}.", ex);
                    Settings.Status(ex.Message, TimeSpan.FromSeconds(60), Verbosity.Error);
                }

                var text = reader.Read(documentViewModel.CurrentEncoding);
            }
        }