5
5291
Unregistered / Unconfirmed
GUEST, unregistred user!
如何做到和php一样的 urlencode/decode。
我如果直接用一下代码,不行。
function urlencode(const s:string):string;
var i:integer;
begin
for i:=0 to length(s) do
if not (s in ['A'..'Z','a'..'z','-','_','.'] then
result := result + '%' + inttohex(ord(s),2) else
result := result + s;
end;
这样不好。好像在内码不是中文的系统中,比如法语,就无法转换中文成正确编码了。
此外,数值超过127的ascii字符也会自动转换成问号。
如果我事先对这些字符进行判断,然后手动转换成转义字符,如:
我如果直接用一下代码,不行。
function urlencode(const s:string):string;
var i:integer;
begin
for i:=0 to length(s) do
if not (s in ['A'..'Z','a'..'z','-','_','.'] then
result := result + '%' + inttohex(ord(s),2) else
result := result + s;
end;
这样不好。好像在内码不是中文的系统中,比如法语,就无法转换中文成正确编码了。
此外,数值超过127的ascii字符也会自动转换成问号。
如果我事先对这些字符进行判断,然后手动转换成转义字符,如: