有一个函数如下:
Function MyUnicode(SMSG:string):String;
var
st:String;
i:integer;
a:UCS4String;
c:LongWord;
MyCh:char;
begin
a:=WideStringToUCS4String(SMSG);
st:='';
i:=0;
while a[i]>0 do
begin
c:=a[i] mod 65536;
mych:=char(c div 256);
st:=st+mych;
mych:=char(c mod 256);
st:=st+mych;
i:=i+1;
end;
Result:=st;
end;
调用该函数,输入“你好”,函数返回"O'Y}",现在我要问的是如何实现逆变换,即输入字符串为"O'Y}",函数返回“你好”,各位高手给个函数出来吧。
Function MyUnicode(SMSG:string):String;
var
st:String;
i:integer;
a:UCS4String;
c:LongWord;
MyCh:char;
begin
a:=WideStringToUCS4String(SMSG);
st:='';
i:=0;
while a[i]>0 do
begin
c:=a[i] mod 65536;
mych:=char(c div 256);
st:=st+mych;
mych:=char(c mod 256);
st:=st+mych;
i:=i+1;
end;
Result:=st;
end;
调用该函数,输入“你好”,函数返回"O'Y}",现在我要问的是如何实现逆变换,即输入字符串为"O'Y}",函数返回“你好”,各位高手给个函数出来吧。
解决方案 »
- 如何在rave打印后,触发事件(如何知道rave打印了)
- 为什么我调用Dll时会报fatal error:cannot create application object in a shared object or library
- 招聘:delphi程序员(北京)
- 用delphi实现一个航空公司定票系统的问题
- 大家来帮忙看看!字符串替换问题
- 过年送分,大家开心。答题者皆有20分送,帮助解决再送100分。
- 如何判断dbgrid里的指针如何移动?
- 怎样对程序中的所有TImage控件都Enabled := True 或 Enabled := False
- 怎样监视注册表的变化,怎样监视文件的变化
- Delphi高难度问题,大家多多发言,详细内容如下
- 关于抽象的经典解释,爆好懂!
- 求助,请教各位大哥怎么把 服务器里的数据库都选择出来,谢谢!
var
i: Integer;
a:UCS4String;
c: LongWord;
MyCh: Char;
begin
i := 1;
setLength(a, Length(UCode) div 2 + 1);
while(i <= Length(UCode)) do
begin
a[(i-1) div 2] := Ord(UCode[i]) * 256 + Ord(UCode[i + 1]);
i := i + 2;
end;
a[(i-1) div 2] := 0;
result := UCS4StringToWideString(a);
end;