Delphi 2010 ist da.

Mitteilungen und Ankündigungen
Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Delphi 2010 ist da.

Beitrag von theo »

mschnell hat geschrieben:
theo hat geschrieben:Das dürfte einfach immer UTF-16 sein, denk ich mal.
Nee. Soweit ich das verstanden habe, speichert das neue Delphi in den Strings die verwendete Codierung ab. Es kann z.B. UTF8, UFT18 oder auch ISOxyz sein. Dann kann es bei Bedarf automatisch umwandeln.


Die Frage war aber nach String Konstanten.
Also
const Mystring='Hallo Echo';

Ich nehme mal an, dass das bei einer neuen Unit dann by default als WideString vorliegt.
Kann sein, dass beim laden alter Sourcen deren Kodierung verwendet wird.
Die Frage ist ja eigentlich, ob der Programmierer davon etwas merkt, bzw. etwas berücksichtigen muss.
Das weiss ich auch nicht.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Delphi 2010 ist da.

Beitrag von Socke »

theo hat geschrieben:Die Frage ist ja eigentlich, ob der Programmierer davon etwas merkt, bzw. etwas berücksichtigen muss.
Das weiss ich auch nicht.

Ich denke, das wird genau so wie vorher gehandhabt; wer keine Ahnung davon hat, ignoriert es und der Rest ist verwirrt :lol:
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Delphi 2010 ist da.

Beitrag von mschnell »

Socke hat geschrieben:Ich denke, das wird genau so wie vorher gehandhabt; wer keine Ahnung davon hat, ignoriert es und der Rest ist verwirrt :lol:

Das wäre doch super (und anders als bei Lazarus). Wer nicht mehr braucht als das, was auch eine lokalisierte ISO-Codierung bietet, merkt gar nichts davon, dass die neue Delphi-Version nun auch Unicode beherrscht. (Kann ich aber kaum glauben...)

Sobald aber irgendwie UTF-8 ins Spiel kommt ist vermutlich jeder Sourcecode der so etwas wie mystring[i] verwendet, nicht mehr funktionsfähig. Ob das wohl defaultmäßig vermieden wird, solange man nicht explizit UTF-8 verlangt ?

-Michael
Zuletzt geändert von mschnell am So 30. Aug 2009, 09:44, insgesamt 1-mal geändert.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Delphi 2010 ist da.

Beitrag von mschnell »

theo hat geschrieben:Die Frage war aber nach String Konstanten.

Wenn jeder String weiß, wie er gespeichert ist, ist es wurscht, wie die Konstanten abgelegt sind. Sie werden bei Verwendung entweder automatisch konvertiert, oder die Codierungsart wird im Ziel-String beibehalten.

Die Methode kommt mir sehr benutzerfreundlich vor. Kann aber Rechenzeit kosten, da ja bei jedem Zugriff auf einen String die Codierungsart berücksichtigt und der Inhalt u.U. konvertiert werden muss.

Gibt es wohl einen Unterschied im Ergebnis zwischen
my_ANSI_char := my_UTF8_striung[i] und
my_ANSI_char := my_ANSI_string[i] ,
wenn wir im String Umlaute haben und der ANSI-String in der entsprechenden lokalisierten Variante abgespeichert ist ?

Wenn nein, müsste der UTF8-String gescannt werden, das Ergebnis von my_UTF8_string[i] wäre (vermutlich) ein UTF8_string aus zwei codes, der dann wieder länderspezifisch in einen ANSI_char konvertiert werden müsste. Ganz schön aufwändig....

-Michael

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Delphi 2010 ist da.

Beitrag von theo »

Naja im Grunde ist es mir ja wurscht. Probleme gibt es so oder so bei der Umstellung auf Unicode. Ich lese gerade: "The Delphi IDE uses UCS-2, i.e. “surrogates” don’t work." und anderes hier:
http://www.micro-isv.asia/2008/12/choos ... urce-code/

Antworten