【发布时间】:2018-06-16 20:42:54
【问题描述】:
我仍在使用 Delphi7(我知道),我需要将 UTF8 XML 编码为 Base64 格式。
我使用支持 UTF8 的 IXMLDocument 创建 XML(也就是说,如果我保存到文件中)。
由于我使用 Indy10 来 HTTP 发布 XML 请求,因此我尝试使用 TIdEncoderMIME 对 XML 进行 Base64 编码。但是有些 UTF8 字符编码不好。
尝试1:
XMLText := XML.XML.Text;
EncodedXML := TIdEncoderMIME.EncodeBytes(ToBytes(XMLText));
在上述情况下,当 XML 保存为字符串时,很可能一些 UTF8 信息/字符已经丢失。
尝试2:
XMLStream := TMemoryStream.Create;
XML.SaveToStream(XMLStream);
EncodedXML := TIdEncoderMIME.EncodeStream(XMLStream);
//or
EncodedXML := TIdEncoderMIME.EncodeStream(XMLStream, XMLStream.Size);
以上两个都返回 EncodedXML = ''(空字符串)。
我做错了什么?
【问题讨论】:
标签: delphi utf-8 base64 delphi-7 encode