一、URL簡介
URL是網頁的位址,比如 http://www.shanhaiMy.com。Web 浏覽器通過 URL 從 web 伺服器請求頁面。
由于URL字元串常常會包含非ASCII字元,URL在傳輸過程中,往往出現錯誤。是以,可以将非字元串字元,讓一些特殊ASCII字元組合,代替非ASCII字元。這就是編碼轉換,當字元串傳輸後,可以傳回原RUL字元串(解碼)。
URL隻能使用 ASCII 字元集來通過網際網路進行發送。URL編碼,就是會将RUL字元轉換為可通過網際網路傳輸的格式。
URL編碼使用“%”其後跟随兩位的十六進制數來替換非 ASCII 字元。比如“®”用“%A9”代替。
URL不能包含空格。URL編碼通常使用“+”來替換空格。
二、RUL編碼與解碼
1、uses HttpApp;
2、編碼,先UTF8編碼,然後再URL編碼,不然和标準的url_encode()編碼結果不一緻,查詢結果自然不是預期的
S2 := HttpEncode(UTF8Encode(S1));
3、解碼,先URL解碼,然後再UTF8解碼,否則結果是亂碼。
S1 := UTF8Decode(HttpDecode(S2));
三、RUL編碼與解碼舉例
uses
Httpapp;
...
begin
S := HttpEncode(UTF8EnCode('中文'));
//或者:
//S := HttpEncode(AnsiToUtf8('中文'));
end;
uses
IdURI;
..
begin
S := TIdURI.URLEncode(str);
//
S := TIdURI.URLDecode(str);
end;