
```
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> 示例