|
@@ -2355,3 +2355,64 @@ Begin
|
|
|
Result:=Str;
|
|
|
SetCodePage(Result,DefaultFileSystemCodePage,True);
|
|
|
End;
|
|
|
+
|
|
|
+function UTF8ToString(const S: UTF8String): UnicodeString; inline;
|
|
|
+begin
|
|
|
+ Result := UTF8Decode(S);
|
|
|
+end;
|
|
|
+
|
|
|
+function UTF8ToString(const S: RawByteString): UnicodeString; inline;
|
|
|
+
|
|
|
+Var
|
|
|
+ UTF8 : UTF8String;
|
|
|
+
|
|
|
+begin
|
|
|
+ UTF8:=S;
|
|
|
+ Result := UTF8Decode(UTF8);
|
|
|
+end;
|
|
|
+
|
|
|
+function UTF8ToString(const S: ShortString): UnicodeString;
|
|
|
+
|
|
|
+Var
|
|
|
+ UTF8 : UTF8String;
|
|
|
+
|
|
|
+begin
|
|
|
+ UTF8:=S;
|
|
|
+ Result := UTF8Decode(UTF8);
|
|
|
+end;
|
|
|
+
|
|
|
+function UTF8ToString(const S: PAnsiChar): UnicodeString;
|
|
|
+var
|
|
|
+ UTF: UTF8String;
|
|
|
+ Count: Integer;
|
|
|
+begin
|
|
|
+ Count := StrLen(S);
|
|
|
+ SetLength(UTF, Count);
|
|
|
+ if Count > 0 then
|
|
|
+ Move(S^, UTF[1], Count);
|
|
|
+ Result := UTF8ToString(UTF);
|
|
|
+end;
|
|
|
+
|
|
|
+function UTF8ToString(const S: array of AnsiChar): UnicodeString;
|
|
|
+var
|
|
|
+ UTF: UTF8String;
|
|
|
+ Count: Integer;
|
|
|
+begin
|
|
|
+ Count := Length(S);
|
|
|
+ SetLength(UTF, Count);
|
|
|
+ if Count > 0 then
|
|
|
+ Move(S[Low(S)], UTF[1], Count);
|
|
|
+ Result := UTF8ToString(UTF);
|
|
|
+end;
|
|
|
+
|
|
|
+function UTF8ToString(const S: array of Byte): UnicodeString;
|
|
|
+var
|
|
|
+ UTF: UTF8String;
|
|
|
+ Count: Integer;
|
|
|
+begin
|
|
|
+ Count := Length(S);
|
|
|
+ SetLength(UTF, Count);
|
|
|
+ if Count > 0 then
|
|
|
+ Move(S[Low(S)], UTF[1], Count);
|
|
|
+ Result := UTF8ToString(UTF);
|
|
|
+end;
|