我們正在嘗試將Delphi Environement從Delphi2007遷移到Delphi XE2。我們從Sourceforge下載了最新的Turbopower xml合作伙伴。淨。當我們做一個簡單的測試以加載XML文件,我們得到一個錯誤「無效的XML字符發現」我們的代碼行在Delphi XE 2中使用Turbopower XML合作伙伴
var
testxml : UnicodeString; // a normal String in Xe2
FModel: TXpObjModel;
begin
FModel := TXpObjModel.Create(nil); //Step 1
FModel.LoadMemory(testxml[1], Length(testxml)); //Step2
end.
的代碼在第2步失敗當變量「Textxml」類型更改爲AnsiString類型然後,xml被正確加載。
XML編碼是UTF-8
像這樣
<?xml version="1.0" encoding="UTF-8">
所以任何人可以建議我們如何加載存儲在Unicode字符串變量類型的XML數據?
我可以建議你放棄Turbo Power XML合作伙伴,並轉到OmniXML,它不需要你調用非類型化參數並自己處理字節緩衝區管理。多麼醜陋的API。 – 2012-01-06 17:15:24
@WarrenP就在這裏。 Turbo Power的東西已經死了,你應該真的嘗試轉向一個主動維護的XML庫。 – 2012-01-06 20:06:11
雖然現在在Delphi 2009和XE以及XE2中使用XML Partner COMPILES時可能會遇到這種情況,但它甚至可能還沒有完全具有Unicode意識,並且不具備Unicode功能。不應該假設這些事情,特別是在舊的不再被任何人主動使用的技術上。 – 2012-01-06 20:54:59