Delphi网址链接Url 不是英文需要进行转码

从delphi的角度看Google(谷歌)URL编码解码方式 
在网上搜索了一下,似乎没有什么关于google的URL编码解码的很详细的资料,因此在这里写一下,希望给有用的人提供一点帮助。 
使用google谷歌搜索一下关键词,对应的编码如下: 
刀:%E5%88%80 
刀具:%E5%88%80%E5%85%B7 
刀具网:%E5%88%80%E5%85%B7%E7%9A%84 
因此可见,google对URL的编码并非简单的httpencode编码,因为httpencode编码后的字符串应该是带有两个百分号的,而这个是三个百分号。  

转码方法:

有两种方式第一种(中文)  这个可以直接输入链接(返回的也是链接):   

uses

  IdURI;

..

begin

  S := TIdURI.URLEncode(str);//编码  

//

  S := TIdURI.URLDecode(str);//解码

end;

第二种  需输入非英文字符串(不能直接输入链接):

1、编码,先UTF8编码,然后再URL编码。

      使用delphi编码的方法:加入待编码原始字符串为OiginStr,则编码后的字符串为:

      NewStr:=HttpEncode(UTF8Encode(OiginStr))

      其中HttpEncode函数需要用到HttpApp,记得uses中加入。

2、解码,先URL解码,然后再UTF8解码。

      使用delphi解码的方法:加入待解码字符串为NewStr,则解码后的原始字符串为:

      OiginStr:=UTF8Decode(HttpDecode(NewStr))

      其中HttpEncode函数需要用到HttpApp,记得uses中加入。

猜你喜欢

转载自blog.csdn.net/zxl_1996/article/details/88104788