delphi函数,识别字符集编码

纪念不用 Delphi 开发7周年

函数,获取web page文本,识别字符集编码;

1 function CreateHttpRequest(proxyServer: string = ''; proxyPort: integer = 0):

2 TIdHTTP;

3 function DecodeHttpRequestText(InString: string): string;

4 implementation

5

6 {$R *.dfm}

7

8 function DecodeHttpRequestText(InString: string): string;

9 begin

10 Result := UpperCase(InString);

11 //google,baidu,cnblogs,localhost等测试ok...

12 if (Pos('CHARSET=', Result) = 0) or (pos('=UTF-', Result) <> 0) then

13 InString := Utf8Decode(InString);

14 Result := InString;

15 end;

16

17 function CreateHttpRequest(proxyServer: string = ''; proxyPort: integer = 0):

18 TIdHTTP;

19 begin

20 Result := TIdHTTP.Create(nil);

21 with Result do

22 begin

23 HandleRedirects := true;

24 HTTPOptions := [hoForceEncodeParams];

25 ReadTimeout := 30000;

26 Request.Accept :=

27 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*';

28 Request.AcceptLanguage := 'zh-cn';

29 Request.ContentType := 'application/x-www-form-urlencoded';

30 Request.UserAgent :=

31 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 4.0)';

32 if (proxyServer <> '') then

33 proxyParams.ProxyServer := proxyServer; //'代理服务器地址';

34 if proxyPort <> 0 then

35 proxyParams.ProxyPort := proxyPort; //'代理服务器端口';

36 end;

37 end;

38

39 procedure TForm1.btn1Click(Sender: TObject);

40 var

41 getstr: string;

42 begin

43 mmo1.Lines.Clear;

44 getstr :=DecodeHttpRequestText( CreateHttpRequest().Get(edt1.Text));

45 mmo1.Lines.Add(getstr);

46

47 end;