Tengo una duda/problema con la codificación de carácteres y los TXMLDocument. Tengo un XML cargado en un TStringList el cual quiero pasar a un TXMLDocument y, hasta ahora, lo hacía de la siguiente manera:
delphi
var Stream: TMemoryStream; begin XML := TXMLDocument.Create(nil); try FXMLData.SaveToStream(Stream); XML.LoadFromStream(Stream); XML.Active := True; ..... finally FreeAndNil(Stream); XML := nil; end; end;
Pero con un XML esta forma me da problemas con ciertos carácteres como acentos o símbolos (como el del copyrigth) y he tenido que cambiar la carga del XML a esta forma para que no me de errores de carga
delphi
begin XML := TXMLDocument.Create(nil); try XML.XML.Text := FXMLData.Text; XML.Active := True; XML.Version := '1.0'; XML.Encoding := 'utf-8'; ....... finally XML := nil; end;
También he probado (en la primera manera) a especificar la codificación en la carga del Stream con el mismo problema de codificación
delphi
XML.LoadFromStream(Stream, xetUTF_8);
La pregunta es.... por qué no carga bien de la primera manera y sí de la segunda??
Gracias