gpt4 book ai didi

c# - 为什么 xmlWriter 在输出的 xml 文件中写入 ASCII 字符?

转载 作者:行者123 更新时间:2023-11-30 22:42:52 24 4
gpt4 key购买 nike

这是我设置 xmlWriter 和 xmlWriterSettings 的方法:

        XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding.Equals("UTF-8");
settings.Indent = true;
settings.OmitXmlDeclaration = true;
settings.NewLineOnAttributes = true;
settings.CheckCharacters = true;
settings.OmitXmlDeclaration = false;

XmlWriter xmlWriter = XmlWriter.Create(otptFile,settings);

我生成了一个看起来像有效 xml 文件的文件,但是当我通过验证器运行它时出现错误:ascii“\EF”未映射到 unicode。

如果我在 textpad 中打开这个文件并保存它,这个错误就会消失并且文件有效。

我正在使用 streamReader 读取 ascii 文件。我检查了是否需要在 streamreader 声明中设置某些内容,但据我所知,UTF-8 是默认值。

如果我将编码设置为 UTF-8,我想了解为什么我的程序具有 ascii 值,以及如何在我的代码中轻松摆脱 ascii 值。感谢您的帮助!

最佳答案

字节序列0xEF,0xBB,0xBF 是UTF-8 byte order mark ( Material list )。

如果不想输出BOM,设置Encoding propertyUTF8Encoding带有 encoderShouldEmitUTF8Identifier 的实例 constructor参数设置为 false:

settings.Encoding = new UTF8Encoding(false);

关于c# - 为什么 xmlWriter 在输出的 xml 文件中写入 ASCII 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4170197/

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