关于 http post 命令中 编码的转换 ( 积分: 100 )

  • 主题发起人 主题发起人 sbzldlb
  • 开始时间 开始时间
S

sbzldlb

Unregistered / Unconfirmed
GUEST, unregistred user!
action=save&LinkName=%CE%D2%B5%C4%C5%F3%D3%D1&LinkUrl=http%3A%2F%2Fwww.wodepy.com&LogoUrl=http%3A%2F%2Fw ww.wodepy.com&Readme=12312312311111&password1=111111&password2=111111&isLogo=0

连接中的 ‘我的朋友’变成了 %CE%D2%B5%C4%C5%F3%D3%D1的啊,怎么转化那
 
很简单

‘我的朋友’变成了 %CE%D2%B5%C4%C5%F3%D3%D1

字节的十六进制字符串,每个字节前加个 %
 
function HtmlEncode(s:string):string;
var i:Integer;
begin
Result := '';
for i := 1 to Length(s) do
begin
Result := Result + '%' + IntToHex(Ord(s),2);
end;
end;
 
楼上的原理是对的,但如果实际运用的话会把不需要转换的字符(比如a,b,c)也转了,简单的做法是调用httpapp单元里现成的函数HTTPEncode
 
但如果实际运用的话会把不需要转换的字符(比如a,b,c)也转了

这个问题不大,服务器会自己转回来的

或加多一个判断在程序里就OK了
 
后退
顶部