diff --git a/SabreTools.Helper/Tools/Style.cs b/SabreTools.Helper/Tools/Style.cs index e75becff..68667a48 100644 --- a/SabreTools.Helper/Tools/Style.cs +++ b/SabreTools.Helper/Tools/Style.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using System.Text; using System.Text.RegularExpressions; +using System.Web; namespace SabreTools.Helper { @@ -440,6 +441,25 @@ namespace SabreTools.Helper return new string(s.Where(c => !invalidPath.Contains(c)).ToArray()); } + /// + /// Convert all characters that are not considered XML-safe + /// + /// Input string to clean + /// Cleaned string + public static string ConvertXMLUnsafeCharacters(string s) + { + return new String(s.Select(c => + (c == 0x9 + || c == 0xA + || c == 0xD + || (c >= 0x20 && c <= 0xD77F) + || (c >= 0xE000 && c <= 0xFFFD) + || (c >= 0x10000 && c <= 0x10FFFF) + ? c + : HttpUtility.HtmlEncode(c)[0])) + .ToArray()); + } + #endregion #region Externally sourced methods