按照合并结果文件标准调整编码

- 优先使用UTF-8读取文件以支持德语特殊字符(Ü, ü, ö等)
- 输出文件使用UTF-8 with BOM格式保存
- 确保在Windows下能正确显示中文字符和特殊字符
- 完全按照'需求/合并结果/CH-875.txt'的格式标准

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
yuuko 2025-11-24 16:02:22 +08:00
parent 54822bd943
commit bc6886aa24

View File

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