近日心血來潮,想把百度的搜索功能集成到Delphi程序中,觀察了百度的搜索鏈接,發現了下面的規律:
http://www.baidu.com/s?wd=[搜索詞目]&cl=3
其中搜索詞目就是我們要搜索的關鍵詞,多個搜索詞通過加號鏈接,如我們要搜索“word1 Word2”,百度就會通過下面的鏈接返回搜索結果:
http://www.baidu.com/s?wd=word1+Word2&cl=3
然而,如果關鍵詞中有中文的話,百度就會將其轉碼為%開始的編碼,那麼如何解決這樣的問題呢?研究了一下,可以通過下面的步驟實現編碼效果:
function getEncodeStr(src: string): string;
var i: integer;
begin
result := '''';
for i := 1 to length(src) do begin
//Dec2Hex用於返回十進制數的十六進制編碼字符串
result := result + ''%'' + Dec2Hex(ord(src[i]));
end;
end;
注:同樣的解決辦法也可用於Google的搜索鏈接。