procedure TForm1.Button1Click(Sender: TObject); var str,tmp: string; i:integer; begin str:='这1是2一3个4字56符7串'; tmp:=''; i:=1; while i<= Length(str) do begin if (Ord(str[i])>127) and (i<Length(str)) then begin tmp:=tmp+'%'+str[i]+str[i+1]; Inc(i); end else tmp:=tmp+'%'+str[i]; inc(i); end; tmp:=tmp+'%' //tmp='%这%1%是%2%一%3%个%4%字%5%6%符%7%串%';end;
procedure (var s:string; c:char); var i:integer; begin i := 1; while i<=Length(s)+1 do begin Insert('%',s,i); if ByteType(s,i+1)=mbLeadByte then i:=i+3 else i:=i+2; end; end; //end str:= '这1是2一3个4字56符7串 '; procedure(str,'%');
上面句“Insert('%',s,i);”改成“Insert(c,s,i);”
使用WideString;var str, s: WideString; i: Integer; begin str:= '这1是2一3个4字56符7串'; s := '%'; for i := 1 to Length(str) do s := s + str[i] + '%'; ShowMessage(s); end;
var
str,tmp: string;
i:integer;
begin
str:='这1是2一3个4字56符7串';
tmp:='';
i:=1;
while i<= Length(str) do
begin if (Ord(str[i])>127) and (i<Length(str)) then
begin
tmp:=tmp+'%'+str[i]+str[i+1];
Inc(i);
end
else
tmp:=tmp+'%'+str[i];
inc(i); end;
tmp:=tmp+'%' //tmp='%这%1%是%2%一%3%个%4%字%5%6%符%7%串%';end;
var
i:integer;
begin
i := 1;
while i<=Length(s)+1 do
begin
Insert('%',s,i);
if ByteType(s,i+1)=mbLeadByte then
i:=i+3
else
i:=i+2;
end;
end;
//end
str:= '这1是2一3个4字56符7串 ';
procedure(str,'%');
str, s: WideString;
i: Integer;
begin
str:= '这1是2一3个4字56符7串'; s := '%'; for i := 1 to Length(str) do
s := s + str[i] + '%'; ShowMessage(s);
end;