我遇到 NativeXML 在它的一个节点的属性上面写入属性,但是当读出的值中包含汉字的时候出现了乱码。检查代码如下
NativeXml := TNativeXml.Create;
try
NativeXml.EncodingString := 'GB2312';// 'UTF-8';
NativeXml.Utf8Convert := True;
NativeXml.BinaryEncoding := xbeBinHex;
NativeXml.Clear; //执行该语句后,会把前面设置的属性全部清除掉。
NativeXml.LoadFromFile(strFilePath);
RootNode := NativeXml.Root;
CurrNode := RootNode.NodeByName(CurrRepDirXmlNode);
strRepDir := CurrNode.ReadAttributeString(CurrRepDirXmlNode);
finally
NativeXml.Free;
end;
我觉得设置的没有问题,但只要有汉字就是乱码,原来是调用了NativeXML.clear; 这个方法会把你设置的属性全部清除。
把这行代码清除了,就可以完全正确了,唉!不能粗心大意啊。