delphi 7 下正常 berlin tokyo均無效
示例代碼如下
aXml.BackXml.Active := True;
aXml.BackXml.Version := '1.0';
aXml.BackXml.Encoding :='GBK';
aXml.XmlNode :=aXml.BackXml.CreateNode('document');
aXml.BackXml.DocumentElement := aXml.XmlNode;
aXml.XmlHead := aXml.BackXml.CreateNode('head');
aXml.XmlNode.ChildNodes.Add(aXml.XmlHead);
//交易代碼
aXml.XmlNodeSecond:=aXml.BackXml.CreateNode('trans_type');
aXml.XmlHead.ChildNodes.Add(aXml.XmlNodeSecond);
aXml.XmlNodeSecond.Text:='100';
輸出顯示結果
<?xml version="1.0"?>
<document><head><trans_type>100</trans_type></head></document>
正常應該是
<?xml version="1.0" encoding="GBK"?><document><head><trans_type>100</trans_type></head></document>
少了 encoding="GBK"
uj5u.com熱心網友回復:
對, 這個我感覺是個BUG 但是一直沒修復使用XML.Text和SaveToXML 都會丟失編碼
使用SaveToStream不會
看看我之前做過的測驗: https://www.cnblogs.com/lzl_17948876/p/3829183.html
uj5u.com熱心網友回復:
不是BUG,SaveToXML是存到一個string/WideString/UTF8String,D2009之后string是unicode編碼,WideString本來就是unicode編碼,如果你指出一個非unicode編碼,那xml的內容在string中怎么存?所以它只能去掉xml頭的encoding欄位,轉換為unicode存盤。如果你存到UTF8String,那么encoding欄位就會出現。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/34210.html
標籤:語言基礎/算法/系統設計
上一篇:listview里實作
