gpt4 book ai didi

c# - .net core 2 的编码问题

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:19 25 4
gpt4 key购买 nike

此代码在 .net framework 中按预期工作,但在 .net core 2 中不工作

文件 in.txt 包含“杜塞尔多夫”

  • 在 .net 框架中输出为“Düsseldorf”

  • 在 .net 核心中,输出是“D.sseldorf”

(我已经绝望地尝试了所有其他编码......没有一个有效)

string infile = @"C:\in.txt", outFile = @"C:\out.txt";

var inStr = new StreamReader(infile, Encoding.Default);
var outStr = new StreamWriter(outFile, false, Encoding.Default);

while (!inStr.EndOfStream)
{
outStr.WriteLine(inStr.ReadLine());
}

outStr.Flush();
inStr.Dispose();
outStr.Dispose();

任何想法为什么它不工作?

最佳答案

据官方MSDN page默认编码不是固定的——它取决于操作系统设置。如果您知道文件的编码,请指定它!

编辑:然后尝试从有效的 .net 框架打印编码详细信息(如名称)。然后在.net core 2中指定相同。不要依赖默认的。本页MSDN, List of encodings in the code sample包含支持的编码列表。

由 gsharp 更新:我必须引用 NuGet 包 System.Text.Encoding.CodePages,注册并使用它

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

var enc1252 = Encoding.GetEncoding(1252);

var inStr = new StreamReader(infile, enc1252);
var outStr = new StreamWriter(outFile, false, enc1252);

关于c# - .net core 2 的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46119872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com