diff --git a/FileMerger.cs b/FileMerger.cs index e59407f..25a2365 100644 --- a/FileMerger.cs +++ b/FileMerger.cs @@ -155,15 +155,15 @@ namespace SlideCombine try { string[] lines; + // 先尝试UTF-8,支持特殊字符如Ü、ü等 try { - // 先尝试GBK编码,因为示例文件是中文的 - lines = File.ReadAllLines(txtFile, Encoding.GetEncoding("GBK")); + lines = File.ReadAllLines(txtFile, Encoding.UTF8); } catch { - // 如果GBK失败,再尝试UTF-8 - lines = File.ReadAllLines(txtFile, Encoding.UTF8); + // 如果UTF-8失败,尝试GBK + lines = File.ReadAllLines(txtFile, Encoding.GetEncoding("GBK")); } foreach (var line in lines) @@ -251,16 +251,9 @@ namespace SlideCombine var outputFileName = $"{result.BaseFileName}.txt"; var outputFilePath = Path.Combine(outputPath, outputFileName); - // 添加BOM标记并使用ANSI编码保存 - var bom = Encoding.UTF8.GetPreamble(); - var content = Encoding.Default.GetBytes(result.OutputContent); - - using (var fs = new FileStream(outputFilePath, FileMode.Create)) - { - // 写入UTF-8的BOM(与示例文件一致) - fs.Write(bom, 0, bom.Length); - fs.Write(content, 0, content.Length); - } + // 使用UTF-8 with BOM保存,支持特殊字符 + var utf8WithBom = new UTF8Encoding(true); + File.WriteAllText(outputFilePath, result.OutputContent, utf8WithBom); } } }