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;



本文转自suifei博客园博客,原文链接:http://www.cnblogs.com/Chinasf/archive/2012/01/11/2319811.html,如需转载请自行联系原作者
相关文章
|
5月前
|
自然语言处理 C++
探究C/C++编码世界:从字符编码到中文处理之艺(二)
探究C/C++编码世界:从字符编码到中文处理之艺
113 2
|
5月前
|
存储 自然语言处理 Linux
探究C/C++编码世界:从字符编码到中文处理之艺(三)
探究C/C++编码世界:从字符编码到中文处理之艺
135 2
|
5月前
|
存储 自然语言处理 程序员
探究C/C++编码世界:从字符编码到中文处理之艺(一)
探究C/C++编码世界:从字符编码到中文处理之艺
104 1
|
2月前
|
存储
字符编码问题之计算机需要编码转换过程如何解决
字符编码问题之计算机需要编码转换过程如何解决
27 0
软件工程——程序编码(程序编码总原则、5个好程序标准、源程序文档化)
当工程规模很大时,而又没有完全合适的语言,可编一个专用的语言
|
存储 Windows
“浅入深处“编码历史,字符串编码(ASCII, GBK, ANSI, Unicode, UTF-8编码),为什么记事本默认ANSI编码,Unicode和UTF8有什么区别
“浅入深处“编码历史,字符串编码(ASCII, GBK, ANSI, Unicode, UTF-8编码),为什么记事本默认ANSI编码,Unicode和UTF8有什么区别
122 0
|
测试技术 数据库
关于在VS+QtTools环境下使用QList<自定义类型>调试存在乱码问题的研究【记录】
关于在VS+QtTools环境下使用QList<自定义类型>调试存在乱码问题的研究【记录】
107 0
AVI格式视频文件编码格式缺少编码解释器且该项目的编码格式不受支持(0xc00d5212错误)
AVI格式视频文件编码格式缺少编码解释器且该项目的编码格式不受支持(0xc00d5212错误)
2749 0
AVI格式视频文件编码格式缺少编码解释器且该项目的编码格式不受支持(0xc00d5212错误)
|
编译器 Shell Linux
VS2019 高级保存设置UTF-8编码-源代码乱码问题
VS2019 高级保存设置UTF-8编码-源代码乱码问题
1124 0
VS2019 高级保存设置UTF-8编码-源代码乱码问题
|
存储 Java
【字符编码】Java编码格式探秘
  在分析Comparable和Comparator的时候,分析到了String类的compareTo方法,String底层是用char[]数组来存放元素,在比较的时候是比较的两个字符串的字符,字符用char来存储,此时,突然想到,Java里面的char可以存放中文吗?后来发现是可以的,并且由此也引出了Java中字符的编码格式问题。
121 0
【字符编码】Java编码格式探秘