using System.IO;
using System.Text;
using System.Text.RegularExpressions;
namespace WechatBakTool.Helpers
{
public static class StringHelper
{
///
/// 清理XML中的非法字符
///
/// 需要清理的字符串
/// 清理后的字符串
public static string CleanInvalidXmlChars(string input)
{
if (string.IsNullOrEmpty(input))
return input;
// #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
// 这里使用正则表达式匹配非法字符并替换
return Regex.Replace(input, @"[^\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD]", "");
}
///
/// 替换文件名中的非法字符为指定字符
///
/// 原始文件名
/// 用于替换非法字符的字符,默认为 "-"
/// 清理后的文件名
public static string SanitizeFileName(string fileName, char replacement = '-')
{
if (string.IsNullOrEmpty(fileName))
return fileName;
// 处理Windows系统中文件名不允许的特殊字符
char[] invalidFileNameChars = Path.GetInvalidFileNameChars();
foreach (char invalidChar in invalidFileNameChars)
{
fileName = fileName.Replace(invalidChar, '-');
}
return fileName;
}
}
}