![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: A simple Delphi wrapper for Sqlite 3
String (Ansi/UTF16) nach UTF8
Hallo ihr,
SQLite verwendet ja UTF8 oder UTF16. Nun ist das beim aktuellen Wrapper den ich verwende ( ![]() String rein -> UTF8 raus Eventuell sogar auch andersherum? Oder geht das nur so:
Delphi-Quellcode:
MfG
function DecodeUTF(const ASource: UTF8String): string;
begin Result := {$IFNDEF Unicode}Utf8ToAnsi{$ENDIF}(ASource); if Result = '' then Result := ASource; end; function EncodeUTF(const ASource: string): UTF8String; begin Result := {$IFDEF Unicode}UTF8Encode{$ELSE}AnsiToUtf8{$ENDIF}(ASource); if Result = '' then Result := ASource; end; xZise |
Re: String (Ansi/UTF16) nach UTF8
Wenn du String verwendest und es in D2009/10 oder jünger verwendet wird, dann einfach UTF8Encode Und UTF8ToString, dann paßt sich das schon automatisch an
Delphi-Quellcode:
{$IF not Declared(UnicodeString)} Type UnicodeString = WideString; {$IFEND}
Procedure DecodeUTF(const ASource: UTF8String; Var S: AnsiString); Overload; begin S := Utf8ToAnsi(ASource); end; Procedure DecodeUTF(const ASource: UTF8String; Var S: UnicodeString); Overload; begin S := UTF8ToWideString(ASource); end; function EncodeUTF(const ASource: AnsiString): UTF8String; Overload; begin Result := UTF8Encode(ASource); end; function EncodeUTF(const ASource: UnicodeString): UTF8String; Overload; begin Result := UTF8Encode(ASource); end; // PS: UTF8Encode ist schon überladen, also kannst du es auch direkt nutzen |
Re: String (Ansi/UTF16) nach UTF8
Ah stimmt ;) Er zeigt mir in der Vervollständigung aber nur WideString an ^^ aber da zeigt er ja eine Überladungen an.
MfG xZise |
Re: String (Ansi/UTF16) nach UTF8
ja, die Autovervollständigung hat da eine kleine Unzulänglichkeit in ihrer Anzeige :?
ist praktisch die selbe Ursache wie hier ![]() dadurch daß nicht auf andere überladene Funktion hingewiesen wird, kommt es halt zu solchen Problemen. |
Re: String (Ansi/UTF16) nach UTF8
Hmmm wegen deprecated:
Wenn ich einen String in einen UTF8 String umwandeln will nehme ich UTF8Encode. Aber andersherum meldet er das UTF8Decode deprecated ist. Soll man stattdessen UTF8ToString nehmen? MfG xZise |
Re: String (Ansi/UTF16) nach UTF8
jupp
abgesehn davon, wandelt UTF8Decode immer in einen WideString also am Einfachsten immer dieses und String verwenden, das past sich dann ans Delphi an UTF8Encode <= AnsiString/WideString/UnicodeString/String nach UTF8 UTF8ToString <= von UTF8 nach String (AnsiString oder ab D2009 UnicodeString) oder du gibst selber den Typen vor UTF8Encode <= AnsiString/WideString/UnicodeString/String nach UTF8 Utf8ToAnsi <= von UTF8 nach AnsiString UTF8ToWideString <= von UTF8 nach WideString UTF8ToUnicodeString <= von UTF8 nach UnicodeString |
Re: String (Ansi/UTF16) nach UTF8
Nein das ist schon gut so, dass sich das anpasst. Weil dann erspare ich mir das ganze zu gucken ob das jetzt ein Wide/AnsiString ist ;)
MfG xZise |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz