array of byte转string后,中文乱码,该怎么处理
array of byte转string后,中文乱码
这样转出来后,中文全成乱码了,这要怎么处理
------解决思路----------------------
首先你要知道你转换它干什么?如果只是要复制走,那可以用move,如果只是以另一种方式访问,既没必要转换,也没必要复制,Delphi有一个非常NB的特性,可以给一个变量声明其他类型的别名:
var
s: string;
p: PByte absolute s;
i: integer;
//...
s := Edit2.Text;
for i := 0 to Length(s) * SizeOf(char) - 1 do
// p[i] 现在表示s的一个字节
var
s,d:utf8String;
b:array of byte;
i:integer;
len:integer;
begin
s := AnsiToUtf8(Edit2.Text);
len := Length(s);
SetLength(b,len);
for i := 1 to len do
begin
b[i-1] := ord(s[i]);
end;
for i := 1 to len do
begin
d[i] := char(b[i-1]);
end;
sleep(0);
end;
这样转出来后,中文全成乱码了,这要怎么处理
------解决思路----------------------
首先你要知道你转换它干什么?如果只是要复制走,那可以用move,如果只是以另一种方式访问,既没必要转换,也没必要复制,Delphi有一个非常NB的特性,可以给一个变量声明其他类型的别名:
var
s: string;
p: PByte absolute s;
i: integer;
//...
s := Edit2.Text;
for i := 0 to Length(s) * SizeOf(char) - 1 do
// p[i] 现在表示s的一个字节