XML的UTF8乱码问题,崩溃了,求助!

nicewin 2017-11-02 11:48:32
D7,需要上传XML数据到服务器,xml文件中encoding="utf-8",使用了idhttp.post
上传后别的正常,中文全是一堆问号,试了很多办法都不行,,求助~

XmlDocument1.SaveToFile(sName);
s := GetXmlFileText(sName);
idHttp1.Request.ContentType := 'text/xml';
SendStream := TStringStream.Create('');
SendStream.WriteString(s);
idhttp1.Post(sUrl,SendStream);

已试过把字符串AnsiToUtf8,Utf8Encode再写入Stream,,设置idHttp的Encode,CharSet等等,统统不行
搜到说TStringStream.Create('',65001),但是D7貌似不支持这个啊,Create只有一个参数
崩溃了,,,求助求助~~~
...全文
542 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
日月路明 2017-11-03
  • 打赏
  • 举报
回复
XmlDocument1.SaveToFile(sName); s := GetXmlFileText(sName); s:=utf8encode(s); .... 这样不行吗?
看那山瞧那水 2017-11-03
  • 打赏
  • 举报
回复
估计是idhttp的问题,D7你用的Indy如果是默认的,版本是9,建议卸了装10. 要改indy的源码,参考http://blog.csdn.net/jankercsdn/article/details/51843151
nicewin 2017-11-03
  • 打赏
  • 举报
回复
2楼的办法试过,传上去还是一堆问号 3楼的也试过,idhttp.post时直接报内存错误=。=
不得闲 2017-11-03
  • 打赏
  • 举报
回复
如果你非要用utf8,那么就在写入xml的时候,写入的内容要全面Utf8,而不是你发送的时候用utf8
不得闲 2017-11-03
  • 打赏
  • 举报
回复
既然你不会utf8,那么你代码就别改了,吧xml的encode指定为gbk试试

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧