A
abigfish
Unregistered / Unconfirmed
GUEST, unregistred user!
我们知道:汉字1->unicode,unicode->汉字2 结果汉字1=汉字2.
现在,我要的是任意的unicode码转成汉字,这些unicode大部分是不可见无规则的字符,然后再把这些无规则的字符通过汉字转化成unicode的办法,结果是前后两串unicode码的数据不一致.哪位高人知道这个问题的原因所在及解决办法
我的转换函数是:
function DecodeChinese(const InputStr: String): String;
var
I : Integer;
W : WideString;
begin
I := 0;
W := '';
while I < Length(InputStr) do
begin
W := W + WideChar(StrToInt('$'+Copy(InputStr, I+1, 4)));
Inc(I, 4);
end;
Result := W;
end;
function EncodeGb(var s: WideString): String;
var
i,len:Integer;
cur:Integer;
t:String;
begin
Result:='';
len:=Length(s);
i:=1;
while i<=len do
begin
cur:=ord(s);
//BCDת»»
FmtStr(t,'%4.4X',[cur]);
Result:=Result+t;
inc(i);
end;
end;
现在,我要的是任意的unicode码转成汉字,这些unicode大部分是不可见无规则的字符,然后再把这些无规则的字符通过汉字转化成unicode的办法,结果是前后两串unicode码的数据不一致.哪位高人知道这个问题的原因所在及解决办法
我的转换函数是:
function DecodeChinese(const InputStr: String): String;
var
I : Integer;
W : WideString;
begin
I := 0;
W := '';
while I < Length(InputStr) do
begin
W := W + WideChar(StrToInt('$'+Copy(InputStr, I+1, 4)));
Inc(I, 4);
end;
Result := W;
end;
function EncodeGb(var s: WideString): String;
var
i,len:Integer;
cur:Integer;
t:String;
begin
Result:='';
len:=Length(s);
i:=1;
while i<=len do
begin
cur:=ord(s);
//BCDת»»
FmtStr(t,'%4.4X',[cur]);
Result:=Result+t;
inc(i);
end;
end;