Die Umwandlung geschieht teilweise durch Betriebssystem Routinen. Dabei wird nach meinen Erfahrungen entweder ein '?' für ein nicht darstellbares Zeichen eingesetzt, ein leerer String zurückgegeben oder eine Exception ausgelöst.mschnell hat geschrieben: Was passiert, wenn bei der (automatischen) Umwandlung von Unicode nach ANSI, in der eingestellten System-Ansi-Tabelle das Unicode-Zeichen nicht definiert ist ?
Erkennen ob das Zeichen ein UTF8 Zeichen ist
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Nie, ausser bei Unicode Tests, altägyptisch und Ähnlichem. Auch bekloppte Mac Dateinamen enthalten keine surrogate pairs.mschnell hat geschrieben: Meine Frage ist: unter welchen Umständen (außer wenn bei Mac bekloppte Dateinamen verwendet werden) wird man tatsächlich mit surrogate pairs konfrontiert werden ?
-
- 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: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Da hat sich aber weiter oben jemand furchtbar aufgeregt ?!?!?!?!?!?!?mse hat geschrieben:Nie, ausser bei Unicode Tests, altägyptisch und Ähnlichem. Auch bekloppte Mac Dateinamen enthalten keine surrogate pairs.
-Michael
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Das geht mir genau gleich, wir müssen wohl oder übel auf die Auskunft eines D2009 Besitzers warten.theo hat geschrieben: Ich könnte aber damit die Frage auch nicht abschliessend beantworten.
"A UnicodeString can contain either a Unicode-sized character, or an ANSI byte-sized character. "
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Ich habe etwas aehnliches gehoert. TUnicodeString kann auch utf-8 speichern, und die Granularitaet ist in der Tunicodestring gespeicherd. Ich habe das aber noch nicht Verifizieren koennenmse hat geschrieben:Das geht mir genau gleich, wir müssen wohl oder übel auf die Auskunft eines D2009 Besitzers warten.theo hat geschrieben: Ich könnte aber damit die Frage auch nicht abschliessend beantworten.
"A UnicodeString can contain either a Unicode-sized character, or an ANSI byte-sized character. "
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
http://www.moonsoft.fi/materials/codege ... nicode.pdf" onclick="window.open(this.href);return false;
A corresponding support data structure is declared in the implementation section of System
unit as:
Also wenn ich das richtig verstehe, haben nun alle referenzgezählten Strings in Delphi diese Struktur, und sind wohl ergo strukturell nicht kompatibel mit den FPC Typen.
Code: Alles auswählen
-12 -10 -8 -4 String reference address
Code page Elem size Ref count length First char of string
unit as:
Code: Alles auswählen
type
PStrRec = ^StrRec;
StrRec = packed record
codePage: Word;
elemSize: Word;
refCnt: Longint;
length: Longint;
end;
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Endlich Klarheit. Danke Theo!theo hat geschrieben:http://www.moonsoft.fi/materials/codegear_delphi_2009_and_unicode.pdf
Also wenn ich das richtig verstehe, haben nun alle referenzgezählten Strings in Delphi diese Struktur, und sind wohl ergo strukturell nicht kompatibel mit den FPC Typen.
-
- 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: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Wenn sie funktionskompatibel sind, sollte das reichen.theo hat geschrieben:ergo strukturell nicht kompatibel mit den FPC Typen.
-Michael
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Das können sie natürlich auch nicht sein, da den FPC Typen Informationen fehlen.mschnell hat geschrieben:Wenn sie funktionskompatibel sind, sollte das reichen.theo hat geschrieben:ergo strukturell nicht kompatibel mit den FPC Typen.
-Michael
-
- 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: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Ah, Du meinst die momentanen, nicht die zukünftigen.... Soweit ich weiß, ist das FPC Team da dran.theo hat geschrieben:Das können sie natürlich auch nicht sein, da den FPC Typen Informationen fehlen.
-Michael
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Also wenn ich das richtig verstehe, haben nun alle referenzgezählten Strings in Delphi diese Struktur, und sind wohl ergo strukturell noch nicht kompatibel mit den FPC Typen.
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Weisst du da genaueres?marcov hat geschrieben:Also wenn ich das richtig verstehe, haben nun alle referenzgezählten Strings in Delphi diese Struktur, und sind wohl ergo strukturell noch nicht kompatibel mit den FPC Typen.
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Ja, ich habe soeben den URL von Cantu an Florian gegebentheo hat geschrieben:Weisst du da genaueres?marcov hat geschrieben:Also wenn ich das richtig verstehe, haben nun alle referenzgezählten Strings in Delphi diese Struktur, und sind wohl ergo strukturell noch nicht kompatibel mit den FPC Typen.

Ich muss da noch ein bisschen darueber denken, und werde dann den Unicode PDF updaten. (und hier ein URL posten)
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Gutmarcov hat geschrieben: Ja, ich habe soeben den URL von Cantu an Florian gegeben

Vielleicht könnt ihr auch meinen UTF8Proc Port gebrauchen: http://www.theo.ch/lazarus/utf8proc_pas.zip" onclick="window.open(this.href);return false;
Für TCharacter, Normalisierung etc.
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Erkennen ob das Zeichen ein UTF8 Zeichen ist
Der embedded Fall werden wir erst später berücksichtigen. Zuerst der normale Fall über OS Routines.theo hat geschrieben: Vielleicht könnt ihr auch meinen UTF8Proc Port gebrauchen: http://www.theo.ch/lazarus/utf8proc_pas.zip" onclick="window.open(this.href);return false;
Für TCharacter, Normalisierung etc.