多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
![](https://img.kancloud.cn/67/0f/670f35cee348aa0a4fbb6dd5088815ba_1235x719.png) ``` var M:TMemoryStream; sHtml:string; begin M:=TMemoryStream.Create; // idhttp1 如上图设置 // 获取 https 网页,需要两个dll , libeay32.dll 与 ssleay32.dll 放入 exe 同目录 // 这两个dll可以从此目录找到 C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\subversion sHmtl:= Idhttp1.Get('www.xxx.com'); // 新版delphi (D11.0版本) 的 idhttp1 已经比较智能了, // 能正确解码 gzip , 也能正确解码 utf8 , shtml 中的结果为正确 Idhttp1.Get('www.xxx.com',M); // 如遇服务器给的结果不规范,就要自己手工去处理 M 中的内容。 // 此时 M 中的数据就是原始数据 注意是否解压 GZIP // 从 rs232 com 组件接收事件取到的数据,是原始数据。 end; ``` 取到原始数据,不要存入 string ,char 要存入 TMemoryStream, array of byte , TBytes , RawByteString 中。 **原始不要从 string , char 过路,过桥,不要用 char 与 string 去容纳取到的数据。** function Utf8ToString(R:RawByteString):String; // 这才将 utf8 转成 string 的正确函数(之一) **如果你知道取的数据是 utf8 格式,可以用 TStringStream ,但一定要真正理解 TStringStream 的用法,否则,照样上当受骗。**