• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphiIXMLDocument解析xml异常。

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近在用delphi解析xml,使用的是UTF-16编码,含中文。

做例子测试:

Form包含一个Button,两个Memo。

 

procedure TForm1.Button1Click(Sender: TObject);
var
xmldocument1:IXMLDocument;
xmlstr:string;
begin
xmlstr:=memo1.Lines.text;
xmldocument1:=TXMLDocument.Create(nil);
xmldocument1.loadfromxml(xmlstr);
memo2.Lines.text := xmldocument1.XML.text;
end;

 点击转换按钮,弹出

UTF-8,GBK,GB2312均可以,utf-16错误,查看IXMLDocument帮助文档,说支持UTF-16。

修改代码

procedure TForm1.Button1Click(Sender: TObject);
var
xmldocument1:IXMLDocument;
xmlstr:widestring;
begin
xmlstr:=memo1.Lines.text;
xmldocument1:=TXMLDocument.Create(nil);
xmldocument1.loadfromxml(xmlstr);
memo2.Lines.text := xmldocument1.XML.text;
end;

点击转换按钮:

不报错,可以识别UTF-16,但转换后自动变为UTF-8,即使添加xmldocument1.encoding:='UTF-16';不起作用。

但中午乱码,输出到文件中中文不乱码。

修改代码:

procedure TForm1.Button1Click(Sender: TObject);
var
xmldocument1:IXMLDocument;
xmlstr:widestring;
begin
xmlstr:=memo1.Lines.text;
xmldocument1:=TXMLDocument.Create(nil);
xmldocument1.loadfromxml(xmlstr);
memo2.Lines.text := xmldocument1.node.XML;
end;

正确。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi编译出来的程序被小红伞报病毒TR/Spy.Banker.Gen4[trojan]发布时间:2022-07-18
下一篇:
delphi键值表及其应用发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap