SQLite, Delphi und Unicode

Gestern bereinigte ich einen Bug in den Systemen von „InstaLOC“. Hierbei ging es um eine Aufbereitung der Locationdatensätze (1.7Mio) in eine leichter lesbare Form. Aufgefallen war mir, dass bspw. chinesische Zeichen in Form von „???“ beim Auslesen und Übertragen dargestellt wurden. Dies ist das Unicode-Problem und meine Lösung war simpel: Wechsel der Spaltenvariable von „VARCHAR“ auf „STRING“.

[Delphi] Texte im Unicode speichern.

Bei einer speziellen Exportfunktion des Hashtagprojektes entdeckte ich, dass die „savetofile“-Prozedure leider keine Unicode-Zeichenketten (Pictogramme, etc.) in die gewünschte Text-Datei oder CSV übertragen kann. Die Problemlösung sieht so aus:

procedure tform1.savetounicode(mytext: tmemo; filename: string);
begin
Writer := TStreamWriter.Create(filename,
false, TEncoding.UTF8);
Writer.WriteLine(mytext.Text);
Writer.Write(mytext.Text);
Writer.Free();
end;

Aufruf der Prozedure:
savetounicode(memo,dateipfad+dateiname);

Inspiriert von:
Saving string or stringlist to unicode textfile