Delphi UniCode转汉字(\u 格式)、汉字转UniCode(\u 格式)


Delphi UniCode转汉字(\u 格式)、汉字转UniCode(\u 格式)

1、UniCode转汉字

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 function UnicodeToChinese(sStr: string): string; var   i: Integer;   index: Integer;   temp, top, last: string; begin   index := 1;   while index >= 0 do   begin     index := Pos('\u', sStr) - 1;     if index < 0 then         //非 unicode编码不转换 ,自动过滤     begin       last := sStr;       Result := Result + last;       Exit;     end;     top := Copy(sStr, 1, index); // 取出 编码字符前的 非 unic 编码的字符,如数字     temp := Copy(sStr, index + 1, 6); // 取出编码,包括 \u,如\u4e3f     Delete(temp, 1, 2);     Delete(sStr, 1, index + 6);     Result := Result + top + WideChar(StrToInt('$' + temp));     end; end;

2、汉字转UniCode  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 function ChineseToUniCode(sStr: string): string;     //汉字的 UniCode 编码范围是: $4E00..$9FA5     作者:滔Roy var   w:Word;   hz:WideString;   i:Integer;   s:string; begin   hz:=sStr;    for i:=1 to Length(hz) do begin     w := Ord(hz[i]);      s:=IntToHex(w, 4);       Result := Result +'\u'+ LowerCase(s);    end; end;

3、示例:

1 2 3 4 5 6 7 8 9 var    s,s1,s2 : string; begin   s1 := '滔Roy';   s2 := '\u6ed4\u0052\u006f\u0079';       s:=ChineseToUniCode(s1);  {汉字到 UniCode 编码}   s:=UnicodeToChinese(s2);  { UniCode 编码到汉字}  end;

相关