小弟近日做一个小项目,需要用到打开IE并传递地址给它,但现在遇到的最大问题是中文不能转换成URL字符,比如'中国'会被转换成'%E4%B8%AD%E5%9B%BD'(javascript中的encodeURIComponent()便能实现这一转换),我知道Delphi7自带一个HTTPEncode的函数,但是它会把'中国'转换成'%D6%D0%B9%FA',这两个是完全不一样的,小弟跪求:怎样实现delphi中把'中国'转换成'%E4%B8%AD%E5%9B%BD',在线等待,感激!!,我的家当全部奉上100分,拜托。
转成UTF-8
然后再用NMURL1控件转
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:='中国';
s:=AnsiToUtf8(s);
NMURL1.InputString:=s;
Edit1.Text:=NMURL1.Encode;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:='中国';
s:=AnsiToUtf8(s);
Edit1.Text:=HTTPEncode(s);
end;
const
dd = '中国';
begin
Edit1.Text := HttpEncode(AnsiToUtf8(dd));
end;
s: string;
begin
..
HttpEncode(AnsiToUtf8(s));就是你要的
原来的控件delphi7里何处寻? 经常有朋友提这样的问题,“我原来在delphi5或者delphi6中用的很熟的控件到哪里去了?是不是在delphi7中没有了呢?这是不是意味着我以前写的代码全都不能够移植到delphi7中来了呢?是不是我必须学习适应这些新的控件呢?” 现在我就对这一问题进行解释,并对在delphi7中的VCL以及CLX进行一下总结,方便有这方面需求的朋友进行查询dclisp70.bpl(Borland Internet Solutions Pack Components)
包括的控件:TFTP、THTML、THTTP、TNNTP、TPOP、TSMTP、TTCP、TUDP
HttpEncode(AnsiToUtf8(s));
就是你要的结果了
procedure TForm2.Button4Click(Sender: TObject);
const
dd = '中国';
begin
Edit1.Text := HttpEncode(AnsiToUtf8(dd));
end;