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 ; |