diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Html/HtmlEncodedTextWriter.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Html/HtmlEncodedTextWriter.cs
new file mode 100644
index 00000000..17e5fc71
--- /dev/null
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Html/HtmlEncodedTextWriter.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Xml;
+
+namespace Xceed.Wpf.Toolkit.Core.Html
+{
+ public class HtmlEncodedTextWriter : XmlTextWriter
+ {
+ private readonly XmlTextWriter _textWriter;
+
+ public HtmlEncodedTextWriter(TextWriter w) : base(w)
+ {
+ _textWriter = this;
+ }
+
+ #region Overrides of XmlTextWriter
+
+
+ ///
+ public override void WriteString(string text)
+ {
+ text = WebUtility.HtmlEncode(text);
+ _textWriter.WriteRaw(text);
+ }
+
+ #endregion
+ }
+}
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Html/HtmlFromXamlConverter.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Html/HtmlFromXamlConverter.cs
index 9ea817d6..ec54fd8d 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Html/HtmlFromXamlConverter.cs
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Html/HtmlFromXamlConverter.cs
@@ -43,7 +43,7 @@ namespace Xceed.Wpf.Toolkit.Core.Html
xamlReader = new XmlTextReader(new StringReader(xamlString));
htmlStringBuilder = new StringBuilder(100);
- htmlWriter = new XmlTextWriter(new StringWriter(htmlStringBuilder));
+ htmlWriter = new HtmlEncodedTextWriter(new StringWriter(htmlStringBuilder));
if (!WriteFlowDocument(xamlReader, htmlWriter))
{
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBox/Formatters/XamlFormatter.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBox/Formatters/XamlFormatter.cs
index 30ed667a..56462e29 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBox/Formatters/XamlFormatter.cs
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBox/Formatters/XamlFormatter.cs
@@ -33,7 +33,7 @@ namespace Xceed.Wpf.Toolkit
using( MemoryStream ms = new MemoryStream() )
{
tr.Save( ms, DataFormats.Xaml );
- return ASCIIEncoding.Default.GetString( ms.ToArray() );
+ return Encoding.UTF8.GetString( ms.ToArray() );
}
}
@@ -50,7 +50,7 @@ namespace Xceed.Wpf.Toolkit
else
{
TextRange tr = new TextRange( document.ContentStart, document.ContentEnd );
- using( MemoryStream ms = new MemoryStream( Encoding.ASCII.GetBytes( text ) ) )
+ using( MemoryStream ms = new MemoryStream( Encoding.UTF8.GetBytes( text ) ) )
{
tr.Load( ms, DataFormats.Xaml );
}
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj
index 3a2191d7..0e088b70 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj
@@ -395,6 +395,7 @@
+
diff --git a/ExtendedWPFToolkitSolution/Tests/Xceed.Wpf.Toolkit.Tests/RichTextBox/Formatters/HtmlFormatterTests.cs b/ExtendedWPFToolkitSolution/Tests/Xceed.Wpf.Toolkit.Tests/RichTextBox/Formatters/HtmlFormatterTests.cs
index 8d46e1e9..e775fb0f 100644
--- a/ExtendedWPFToolkitSolution/Tests/Xceed.Wpf.Toolkit.Tests/RichTextBox/Formatters/HtmlFormatterTests.cs
+++ b/ExtendedWPFToolkitSolution/Tests/Xceed.Wpf.Toolkit.Tests/RichTextBox/Formatters/HtmlFormatterTests.cs
@@ -16,14 +16,14 @@ namespace Xceed.Wpf.Toolkit.Tests
public FlowDocument CreateSimpleFlowDocument()
{
- var r = new Run("Hallo Welt!");
+ var r = new Run("Hallo Welt! ÄÖÜ äöü ^ \" ß ' & <>");
var b = new Bold(r);
var p = new Paragraph(b);
return new FlowDocument(p);
}
public string CreateSimpleHtml() =>
- "
Hallo Welt!
";
+ "Hallo Welt! ÄÖÜ äöü ^ " ß ' & <>
";
[Test]
public void GetText_ShouldReturnAHtmlText()
@@ -33,7 +33,7 @@ namespace Xceed.Wpf.Toolkit.Tests
var actual = sut.GetText(doc);
- const string expectedText = "Hallo Welt!";
+ const string expectedText = "Hallo Welt! ÄÖÜ äöü ^ " ß ' & <>";
const string expectedBoldStyle = "bold";
const string expectedHtmlTag = "";
@@ -56,7 +56,7 @@ namespace Xceed.Wpf.Toolkit.Tests
var actual = new XamlFormatter().GetText(doc);
- const string expectedText = "Hallo Welt!";
+ const string expectedText = "Hallo Welt! ÄÖÜ äöü ^ \" ß ' & <>";
const string expectedBoldStyle = "Bold";
const string expectedSection = "Section";