Delphi UniCode轉漢字(\u 格式)、漢字轉UniCode(\u 格式)
阿新 • • 發佈:2022-04-01
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 ;
|