fix: 统一输出文件编码为ANSI,修复.NET 6下Encoding.Default回退为UTF-8的问题
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -79,14 +79,7 @@ namespace DrillTools
|
||||
|
||||
private static Encoding CreateAnsiEncoding()
|
||||
{
|
||||
try
|
||||
{
|
||||
return Encoding.GetEncoding(Gb2312CodePage);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return Encoding.Default;
|
||||
}
|
||||
return Encoding.GetEncoding(Gb2312CodePage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,14 +147,7 @@ namespace DrillTools
|
||||
|
||||
private static Encoding CreateAnsiEncoding()
|
||||
{
|
||||
try
|
||||
{
|
||||
return Encoding.GetEncoding(Gb2312CodePage);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return Encoding.Default;
|
||||
}
|
||||
return Encoding.GetEncoding(Gb2312CodePage);
|
||||
}
|
||||
|
||||
private readonly record struct DrillTapeLine(string Text, string LineEnding);
|
||||
|
||||
@@ -550,18 +550,8 @@ namespace DrillTools
|
||||
}
|
||||
|
||||
// 3. 将重新排序后的钻带内容写入原始文件,使用ANSI编码
|
||||
Encoding ansiEncoding;
|
||||
try
|
||||
{
|
||||
ansiEncoding = Encoding.GetEncoding(936); // 936是GB2312的代码页
|
||||
}
|
||||
catch
|
||||
{
|
||||
ansiEncoding = Encoding.Default; // 如果获取失败,使用系统默认编码
|
||||
}
|
||||
|
||||
// 使用StreamWriter写入文件,确保编码正确应用
|
||||
using (var writer = new StreamWriter(OriginalFilePath, false, ansiEncoding))
|
||||
using (var writer = new StreamWriter(OriginalFilePath, false, CreateGb2312Encoding()))
|
||||
{
|
||||
writer.Write(reorderedDrillTape);
|
||||
writer.Flush(); // 确保所有数据都被写入
|
||||
@@ -1394,17 +1384,7 @@ M30";
|
||||
}
|
||||
|
||||
// 使用ANSI编码写入文件
|
||||
Encoding ansiEncoding;
|
||||
try
|
||||
{
|
||||
ansiEncoding = Encoding.GetEncoding(936); // 936是GB2312的代码页
|
||||
}
|
||||
catch
|
||||
{
|
||||
ansiEncoding = Encoding.Default; // 如果获取失败,使用系统默认编码
|
||||
}
|
||||
|
||||
File.WriteAllText(outputFilePath, diameterList.ToString(), ansiEncoding);
|
||||
File.WriteAllText(outputFilePath, diameterList.ToString(), CreateGb2312Encoding());
|
||||
|
||||
// 记录日志
|
||||
System.Diagnostics.Debug.WriteLine($"刀具直径列表文件已生成: {outputFilePath}");
|
||||
@@ -1461,17 +1441,7 @@ M30";
|
||||
}
|
||||
|
||||
// 使用ANSI编码写入文件
|
||||
Encoding ansiEncoding;
|
||||
try
|
||||
{
|
||||
ansiEncoding = Encoding.GetEncoding(936); // 936是GB2312的代码页
|
||||
}
|
||||
catch
|
||||
{
|
||||
ansiEncoding = Encoding.Default; // 如果获取失败,使用系统默认编码
|
||||
}
|
||||
|
||||
File.WriteAllText(outputFilePath, diameterList.ToString(), ansiEncoding);
|
||||
File.WriteAllText(outputFilePath, diameterList.ToString(), CreateGb2312Encoding());
|
||||
|
||||
// 记录日志
|
||||
System.Diagnostics.Debug.WriteLine($"通用排序种子文件已生成: {outputFilePath}");
|
||||
@@ -1750,7 +1720,7 @@ M30";
|
||||
// 2. 创建模拟的参考钻带内容
|
||||
string mockReferenceContent = CreateMockReferenceDrillTape(Tools.ToList());
|
||||
string tempReferenceFile = System.IO.Path.GetTempFileName();
|
||||
System.IO.File.WriteAllText(tempReferenceFile, mockReferenceContent);
|
||||
System.IO.File.WriteAllText(tempReferenceFile, mockReferenceContent, CreateGb2312Encoding());
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user