function TCodeConverter.GBKToUCS2(Contend:String): string;
var
UniCode4String: UCS4String;
i: Integer;
Tep: Array of Byte;
Resutl_String: string;
begin
if length(Trim(Contend))=0 then
Result:=''
else
begin
UniCode4String:=WideStringToUCS4String(trim(Contend));
SetLength(Tep,(length(UniCode4String)-1)*2);
for i:=0 to length(UniCode4String)-2 do
begin
Tep[2*i]:=(UniCode4String[i]) div 256;
Tep[2*i+1]:=UniCode4String[i] mod 256;
end;
SetLength(Resutl_String,(length(UniCode4String)-1)*4);
BinToHex(@Tep[0],@Resutl_String[1],length(Tep));
Result:=Resutl_String;
end;
end;
希望高手能帮帮忙啊!在线等!
var
UniCode4String: UCS4String;
i: Integer;
Tep: Array of Byte;
Resutl_String: string;
begin
if length(Trim(Contend))=0 then
Result:=''
else
begin
UniCode4String:=WideStringToUCS4String(trim(Contend));
SetLength(Tep,(length(UniCode4String)-1)*2);
for i:=0 to length(UniCode4String)-2 do
begin
Tep[2*i]:=(UniCode4String[i]) div 256;
Tep[2*i+1]:=UniCode4String[i] mod 256;
end;
SetLength(Resutl_String,(length(UniCode4String)-1)*4);
BinToHex(@Tep[0],@Resutl_String[1],length(Tep));
Result:=Resutl_String;
end;
end;
希望高手能帮帮忙啊!在线等!
解决方案 »
- .net 连接NT2008上的DB2 V9.7.0.2 提示未在本地计算机上注册“IBMDADB2.1”提供程序
- 函数的声明
- C#日期控件
- crystal Report 传参数。。。
- dataGridView 与数据库绑定
- c#随机数的问题
- 急:C#怎样使用正则表达式去掉字符串中所有的html标记
- 数组处理上的问题,数组有没有类似于字符串的substring一样的方法,可以从指定的下到开始,拷贝指定的个数到另一个同一类型的数组
- 如何修改文本数据??
- DataList edit项中的FindControl的问题
- 数据库操作
- 100分求救:sql2000存储过程高手请进,帖子引用功能中多层引用问题
其余的都好说
然后再找出,长字符串转到UCS4String这个类型的方法,那么这个代码就可以转过来了
其他都是基础函数
private String GBKToUCS2(String str)
{
byte[] bt = Encoding.BigEndianUnicode.GetBytes(str);
String rt = "";
for (int i = 0; i < bt.Length; i++)
{
rt += String.Format("{0:X}", bt[i]);
} return rt;
}
{
return BitConverter.ToString(Encoding.BigEndianUnicode.GetBytes(str)).Replace("-", "");
}测试:Console.WriteLine(GBKToUCS2("Zswang 路过!"));
输出:005A007300770061006E006700208DEF8FC70021和Delphi中一致。