show.asp?sort=全部&sortlevel=1&gorq=供&n=5&sitename=全部&img=yes&imgfile=/images/dot_g.gif
諸如這樣的形式,在百度查詢會轉成GB2312的編碼,每個漢字對應2個%xx%xx ,但是在google,每個漢字則對應的三個%xx%xx%xx,采用的是unicode編碼
在delphi2010中,因為引入unicode的緣故,默認的成了3個%xx,導致我的程序出現問題,找了半天,每一個函數能夠實現全URL的自動檢測編碼,所以自己寫了一個,共享給大家:
uses
httpapp;
function urlencode(Aurl: string): string;
var
i: integer;
stmp,Tstmp: string;
begin
result:=Aurl;
if length(Aurl) > 0 then
begin
for i := 1 to length(Aurl) do
begin
if Integer(Ord(Aurl[i])) >255 then
begin
stmp := copy(Aurl, i, 1);
Tstmp:=HttpEncode(stmp);
result:=stringreplace(result,stmp,Tstmp,[]);
end;
end;
end;
end;
使用:
URL :=urlencode(URL);
則URL中的漢字自動轉為gb2312的%xx的編碼。
參考:
http://ifso.iteye.com/blog/1513438