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) = 0or (pos('=UTF-', Result) <> 0then
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;

 

转载于:https://www.cnblogs.com/Chinasf/archive/2012/01/11/2319811.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

取消Win7关机时的补丁更新

取消Win7关机时的补丁更新作者&#xff1a;三好 阅读&#xff1a; 30037人文&#xff1a;陕西 三好 Windows操作系统一直是在缝缝补补中前行的&#xff0c;Win7也不例外。由于系统自带的更新更安全更可靠&#xff0c;所以好多朋友都喜欢使用&#xff0c;如果将系统默认的“自动…

jdk下载

oracle官网&#xff1a;https://developer.oracle.com/java/ 一直往下拉到最低部 这里选择你需要的历史版本&#xff0c;我就选择 安装就不用我多说了&#xff0c;和以前安装jdk一样安装&#xff0c;配置环境变量

机器学习笔记(五)续——朴素贝叶斯算法的后验概率最大化含义

上一节中讲了朴素贝叶斯算法将实例分到后验概率最大的类。这等价于期望风险最小化。 假设使用0-1损失函数&#xff1a; L(Y,f(X)){1,0,Y≠f(X)Yf(X)L(Y, f(X)) = \Bigg\{ \begin{array} {ll}1, & Y \neq f(X) \\0, & Y = f(X)\end{array}上式中的f(x)是分类决策函数…

项目管理汇总

一、一个失败软件项目的思考 http://kb.cnblogs.com/page/113051/ 二、我们需要真正的软件项目经理 http://wangacidlemon.iteye.com/blog/1185903 评论写的不错&#xff0c;粘贴来先给大家分享一下 一个好的项目负责人&#xff0c;是不会自己去做具体事情的&#xff0c;他应…

ElasticSearch和solr的对比

关于ES&#xff1a;ElasticSearch是一个事实分布式搜索和分析引擎&#xff0c;使用其可以以前所未有的速度处理大数据&#xff0c;他用于全文搜索、结构化搜索、分析以及将这三者混合使用。维基百科使用ElasticSearch提供全文搜索并高亮关键字&#xff0c;以及输入实时搜索(sea…

机器学习笔记(六)——朴素贝叶斯法的参数估计

一、极大似然估计 在上一笔记中&#xff0c;经过推导&#xff0c;得到了朴素贝叶斯分类器的表示形式&#xff1a; yargmaxckP(Yck)∏jP(X(j)x(j)|Yck)(1)也就是说&#xff0c;朴素贝叶斯方法的学习是对概率P(Yck)和P(X(j)x(j)|Yck)的估计。故可以用极大似然估计法估计上述先验…

ElasticSearch和mysql对比

以员工文档 的形式存储为例&#xff1a;一个文档代表一个员工数据。存储数据到 ElasticSearch 的行为叫做索引&#xff0c;但在索引一个文档之前&#xff0c;需要确定将文档存储在哪里。一个 ElasticSearch 集群可以包含多个 索引&#xff0c;相应的每个索引可以包含多个类型 。…

最优化学习笔记(一)——牛顿法(一维搜索方法)

一、一维搜索方法 讨论目标函数为一元单值函数f:R→R时的最优化问题的迭代求解方法。 二、局部极小点的条件 n元实值函数f的一阶导数Df为&#xff1a; Df≜[∂f∂x1,∂f∂x2,…,∂f∂xn]Df \triangleq \lbrack \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partia…

针对12306.cn网站应用架够的一些看法

临近年终&#xff0c;公司请来一位讲师来给我们作培训&#xff0c;题目记得是设计匠艺。说实话&#xff0c;我做不到像讲师那样&#xff0c;快讲完课时能将自己所讲的内容都有条理整理一遍。我就大致讲讲我所做笔记的一些内容吧。总的来说这位讲师的实践经验很丰富&#xff0c;…

机器学习笔记(七)——决策树模型

引言 决策树&#xff08;Decision Tree&#xff09;是一种基本的分类和回归方法。它的扩展方法有GBDT和GBRT 等。决策树模型的学习过程主要有特征选择、决策树生成和剪枝。主要算法有ID3、C4.5和CART等。 一、决策树模型 决策树首先是一个树形结构&#xff0c;它包括两种类型…

ElasticSearch获取多个文档Multi GET API介绍

#■同时获取多个文档信息 #■例子:获职index:bank和shakespeare下面 #. I0为1.2.3.4.15.6.28的文档信息 GET /bank/bank_account/1 GET /bank/bank_account/2 GET /shakespcare/line/3 GET /bank/bank_account/4 GET /shakespeare/line/15 #日数组[] GET /_mget {"docs&qu…

机器学习笔记(八)——决策树模型的特征选择

一、引言 决策树构建过程中的特征选择是非常重要的一步。特征选择是决定用哪个特征来划分特征空间&#xff0c;特征选择是要选出对训练数据集具有分类能力的特征&#xff0c;这样可以提高决策树的学习效率。如果利用某一个特征进行分类与随机分类的结果没有很大的差别&#xf…

Bulk批量操作API的介绍

#多重模式 #批量操作bulk POST /library/books/_bulk {"index": {"_id": 1}} {"title":"Elasticsearch: The Definitive Guide","price":5} {"index": {"_id": 2}} {"title":"The Elast…

[转】:Android调试工具及方法

http://www.cnblogs.com/feisky/archive/2010/01/01/1637566.html--LogcatDump一份系统消息的日志。这些消息包括模拟器抛出错误时的堆栈跟踪。Android Log一个记录日志的类&#xff0c;用来将消息写入模拟器上的日志文件中。如果你在DDMS上运行logcat的话你可以就实时查看消息…

机器学习笔记(九)——决策树的生成与剪枝

一、决策树的生成算法 基本的决策树生成算法主要有ID3和C4.5, 它们生成树的过程大致相似&#xff0c;ID3是采用的信息增益作为特征选择的度量&#xff0c;而C4.5采用信息增益比。构建过程如下&#xff1a; 从根节点开始&#xff0c;计算所有可能的特征的信息增益&#xff08;信…

apache+webdav的安装配置

原始资料&#xff1a;http://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch apachewebdav的安装配置 需求&#xff1a;1.开启一个web服务&#xff0c;使得客户端能够像操作本地磁盘一样操作服务端某个文件目录下的文件在服务器上安装配置apachewebdav模块…

最优化学习笔记(二)——二分法

二分法是一种一维搜索方法。它讨论的是求解一元单值函数f:R→R在区间[a0,b0]的极小点问题。同时要求函数f在区间[a0,b0]上为单调函数&#xff0c;并且是连续可微的&#xff0c;这里将使用f的一阶导数f′。 二分法的计算过程比较简单&#xff0c;它主要是利用一阶导数来连…

elasticsearch内部版本控制

现在我将这个price价格改为10&#xff0c;看下版本有什么变化&#xff1f; 获取一下 返回结果我们知道价格price已经修改为10&#xff0c;_version已经变成2 我们把参数version改成2试试 我们从执行结果可知&#xff0c;我们已经修改成功&#xff0c;并且版本自增为3

JAVA每个初学者都应该搞懂的问题 还可以比较基础

还可以比较基础 转自http://blog.csdn.net/devillyd/article/details/2486520 对于这个系列里的问题&#xff0c;每个学Java的人都应该搞懂。当然&#xff0c;如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了&#xff0c;却不很懂这些问题&#xff0c;请将你自己…