Fix #733: detect Markdown encoding

This commit is contained in:
Paddy Xu
2020-09-20 13:44:11 +02:00
parent 1d857ccc0f
commit c0ca430883
3 changed files with 14 additions and 1 deletions

View File

@@ -19,10 +19,12 @@ using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Windows;
using System.Windows.Threading;
using QuickLook.Common.Plugin;
using QuickLook.Plugin.HtmlViewer;
using UtfUnknown;
namespace QuickLook.Plugin.MarkdownViewer
{
@@ -66,7 +68,10 @@ namespace QuickLook.Plugin.MarkdownViewer
private string GenerateMarkdownHtml(string path)
{
var md = File.ReadAllText(path);
var bytes = File.ReadAllBytes(path);
var encoding = CharsetDetector.DetectFromBytes(bytes).Detected?.Encoding ?? Encoding.Default;
var md = encoding.GetString(bytes);
md = WebUtility.HtmlEncode(md);
var html = Resources.md2html.Replace("{{content}}", md);

View File

@@ -62,6 +62,9 @@
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xaml" />
<Reference Include="UtfUnknown, Version=2.0.0.0, Culture=neutral, PublicKeyToken=90217ce7a23260d4, processorArchitecture=MSIL">
<HintPath>..\..\packages\UTF.Unknown.2.3.0\lib\net40\UtfUnknown.dll</HintPath>
</Reference>
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
@@ -95,6 +98,7 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="Resources\md2html.html" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="UTF.Unknown" version="2.3.0" targetFramework="net462" />
</packages>