gpt4 book ai didi

xml - 为什么当我序列化为字符串时,TXmlDocument 会省略编码?

转载 作者:行者123 更新时间:2023-12-03 18:28:19 27 4
gpt4 key购买 nike

如果我逐行构建 XML,我可以设置编码,但是当我从文件加载它时,我无法添加编码。看:

procedure TForm1.Button1Click(Sender: TObject);
var
x : TXMLDocument;
s : string;
w : WIdeString;
begin
s := '<?xml version="1.0"?><a><b/></a>';
x := TXMLDocument.Create(Self);
x.XML.Text := s;
x.Active := True;
x.Encoding := 'UTF-8';
x.DocumentElement.childNodes['b'].attributes['x'] := '1';
x.SaveToXML(w);
ShowMessage(w);
end;

有趣的是结果中缺少“编码”部分!

如何使结果包含 XML 编码?

最佳答案

您正在将 XML 保存到 WideString。一个 WideString根据定义,它是 UTF16 编码的,因此指定另一种编码毫无意义。 IIRC,您可以指定 encoding="UTF-16" ,它不会被删除,因为它就是这样。

但是,如果您随后将 XML 文档保存到流中,则可以指定不同的编码。

关于xml - 为什么当我序列化为字符串时,TXmlDocument 会省略编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10892571/

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