Fix #39: detect file encoding

This commit is contained in:
Paddy Xu
2017-07-14 18:49:55 +03:00
parent d855e80bdc
commit 751bd6e28e
5 changed files with 389 additions and 2 deletions

View File

@@ -16,8 +16,10 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System.IO;
using System.Text;
using System.Windows.Controls;
using ICSharpCode.AvalonEdit.Highlighting;
using QuickLook.Plugin.TextViewer.SimpleHelpers;
namespace QuickLook.Plugin.TextViewer
{
@@ -35,9 +37,20 @@ namespace QuickLook.Plugin.TextViewer
private void LoadFile(string path)
{
viewer.Load(path);
using (var s = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
viewer.Encoding = DetectEncoding(s);
viewer.Load(path);
}
viewer.SyntaxHighlighting = HighlightingManager.Instance.GetDefinitionByExtension(Path.GetExtension(path));
}
private static Encoding DetectEncoding(Stream s)
{
var det = new FileEncoding();
det.Detect(s, 1 * 1024 * 1024);
return det.Complete() ?? Encoding.Default;
}
}
}