近日心血来潮,想把百度的搜索功能集成到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;