gpt4 book ai didi

读取文件时的C#编码

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

我有一个包含字母 ø 的文件。当我用这段代码 File.ReadLines(filePath) 读取它时,我得到了一个问号而不是它。

当我像这样添加编码时 File.ReadLines(filePath, Encoding.GetEncoding(1252)) 我得到了 ø 字符。

但默认编码已设置为 1252,属性 Encoding.Default.CodePage 返回 1252。

为什么我在阅读时必须将编码指定为 1252,而默认编码已经设置为 1252

还有一个问题,如果文件是 Unicode,C# 会识别它的格式吗?还是我必须指定 Unicode 编码?

最佳答案

原因是默认读取文本文件时使用的编码是UTF8。

Encoding.Default 不是(尽管它的名字)读取文件时使用的默认编码!

在我看来,Encoding.Default 更好的名称应该是 Encoding.UsingCurrentCodePage。 ;)

另请注意,您可以使用 File.ReadLines(filePath, Encoding.Default) 而不是使用 File.ReadLines(filePath, Encoding.GetEncoding(1252))

如果您的代码试图读取在与 1252 不同的代码页中创建的文件,并且该代码页是运行该代码的系统的当前代码页,您就会这样做。

您应该使用代码页的唯一原因是您正在读取或写入遗留文件。

关于读取文件时的C#编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35749249/

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