Unicode轉字符
function UnicodeToStr(strUnicode: string): string;
var
str1, str2: string;
i: integer;
int1: integer;
begin
str1 := '';
Result := '';
for i := 1 to length(strUnicode) do
begin
if strUnicode[i] in ['0'..'9'] then
begin
if str1 <> '' then
str1 := str1 + strUnicode[i]
else
Result := Result + strUnicode[i];
end else
begin
if str1 <> '' then
begin
try
int1 := StrToInt(Copy(str1, 2, length(str1)));
except
int1 := 0;
end;
if (int1 = 0) or (int1 <= 256) then
Result := Result + str1
else
Result := Result + WideChar(int1);
str1 := '';
end;
if strUnicode[i] = '#' then
str1 := '#'
else
Result := Result + strUnicode[i];
end;
end;
if str1 <> '' then
begin
try
int1 := StrToInt(Copy(str1, 2, length(str1)));
except
int1 := 0;
end;
if (int1 = 0) or (int1 <= 256) then
Result := Result + str1
else
Result := Result + WideChar(int1);
str1 := '';
end;
Result := StringReplace(Result, '''', '', [rfReplaceAll, rfIgnoreCase]);
end;
var
str1, str2: string;
i: integer;
int1: integer;
begin
str1 := '';
Result := '';
for i := 1 to length(strUnicode) do
begin
if strUnicode[i] in ['0'..'9'] then
begin
if str1 <> '' then
str1 := str1 + strUnicode[i]
else
Result := Result + strUnicode[i];
end else
begin
if str1 <> '' then
begin
try
int1 := StrToInt(Copy(str1, 2, length(str1)));
except
int1 := 0;
end;
if (int1 = 0) or (int1 <= 256) then
Result := Result + str1
else
Result := Result + WideChar(int1);
str1 := '';
end;
if strUnicode[i] = '#' then
str1 := '#'
else
Result := Result + strUnicode[i];
end;
end;
if str1 <> '' then
begin
try
int1 := StrToInt(Copy(str1, 2, length(str1)));
except
int1 := 0;
end;
if (int1 = 0) or (int1 <= 256) then
Result := Result + str1
else
Result := Result + WideChar(int1);
str1 := '';
end;
Result := StringReplace(Result, '''', '', [rfReplaceAll, rfIgnoreCase]);
end;