![](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 的用法,否则,照样上当受骗。**
- 0.1 教程说明
- 0.2 delphi xe8 安装
- 0.2.2 XE 10.3.3 安装
- 0.3 delphi IDE 的非常必要的配置
- 0.4 调试中的异常处理
- 0.5 工程路径设置
- 0.6 开发工具界面切换成中文的问题
- 一、实用技巧
- 0.尝试为event取名叫伊文特
- 1.各种(变量)数据在内存中是什么样子的?
- 2
- 3
- 4.乱码问题
- 5
- 二、多线程
- 三、DLL相关
- 1.DLL中函数参数如何设计?
- 2.调用易语言DLL识别验证码
- 四、界面设计
- 1.关于解耦问题
- 2.登录功能设计
- 五、面向对象基础知识
- 1.窗口间传递值
- 3.避免又臭又长的裹脚布
- 2.扩展 TStringGrid , delphi 7 示例
- 六、初学者误区集锦
- 七 TList 集合
- 1.附加信息Pointer设计
- 2.用 TList 来建立组件间的联系
- 3.泛型 TList<T> 示例