procedure TForm1.Button1Click(Sender: TObject);
var
s,temp: string;
i: integer;
begin
s:='中国';
Memo1.Lines.Clear;
temp:='';
for I := 1 to length(s) do
begin
temp:=temp+'/'''+inttohex(ord(s),2);
end;
Memo1.Lines.Add(temp);
end;
//辅助函数
procedure FastHexWrite(const S:Char;PDestChar);
var
m:Byte;
begin //将字符的Hex形式写入指定地址
m:=Byte(S) shr 4; //高4位
if m<10 then
Byte(PDest^):=m+Byte('0')
else
Byte(PDest^):=m+Byte('A')-10;
m:=Byte(S) and $0F; //低4位
if m<10 then
Byte((PDest+1)^):=m+Byte('0')
else
Byte((PDest+1)^):=m+Byte('A')-10;
end;
//转换代码
var
i,n:Word;
str,AimStr:string;
pc0,pcChar;
begin
str:='中国';
n:=Length(str);
SetLength(AimStr,n*4); //2 Hex + "/'"
pc0:=@str[1];
pc:=@AimStr[1];
for i:=1 to n do
begin
pc^:='/'; Inc(pc);
pc^:=''''; Inc(pc);
FastHexWrite(pc0^,pc);
Inc(pc,2);
Inc(pc0);
end;
//Now AimStr is /'d6/'d0/'b9/'fa