Delphi-Zeichenfolgen werden intern als UTF-16 codiert. Es gab einen großen Hinweis darauf, dass %code% 2 ist.
Der Grund dafür, dass alle Ihre Zeichen eine Ordinalzahl im ASCII-Bereich hatten, ist, dass UTF-16 ASCII in dem Sinne erweitert, dass die Zeichen 0 bis 127 im ASCII-Bereich den gleichen Ordinalwert in UTF-16 haben. Und alle deine Charaktere sind ASCII-Zeichen.
Das heißt, Sie brauchen sich keine Gedanken über den internen Speicher zu machen. Sie konvertieren einfach zwischen String- und Byte-Array mithilfe der Klasse %code% . Um beispielsweise in UTF-8 zu konvertieren, schreiben Sie:
%Vor%Und in die entgegengesetzte Richtung:
%Vor%Die Klasse unterstützt viele andere Codierungen, wie in der Dokumentation beschrieben. Aus der Frage, welche Kodierung Sie verwenden müssen, ist nicht klar. Hoffentlich können Sie den Rest von hier aus erledigen.
Delphi-Zeichenfolgen werden intern als UTF-16 codiert. Es gab einen großen Hinweis darauf, dass SizeOf(Char)
2 ist.
Der Grund dafür, dass alle Ihre Zeichen eine Ordinalzahl im ASCII-Bereich hatten, ist, dass UTF-16 ASCII in dem Sinne erweitert, dass die Zeichen 0 bis 127 im ASCII-Bereich den gleichen Ordinalwert in UTF-16 haben. Und alle deine Charaktere sind ASCII-Zeichen.
Das heißt, Sie brauchen sich keine Gedanken über den internen Speicher zu machen. Sie konvertieren einfach zwischen String- und Byte-Array mithilfe der Klasse TEncoding
. Um beispielsweise in UTF-8 zu konvertieren, schreiben Sie:
Und in die entgegengesetzte Richtung:
%Vor%Die Klasse unterstützt viele andere Codierungen, wie in der Dokumentation beschrieben. Aus der Frage, welche Kodierung Sie verwenden müssen, ist nicht klar. Hoffentlich können Sie den Rest von hier aus erledigen.
Tags und Links string delphi delphi-xe5 firemonkey-fm3