Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Migration von Firebirdprojekt (Delphi 2006 nach delphi 2

  Alt 6. Okt 2009, 10:55
War Unicode_FSS überhaupt UTF8?
Wenn ich mich recht entsinne war das UCS2 (der Unicode-Dialekt, der von Widestring "gesprochen" wird)
UTF8 ist im ASCII-Bereich nicht von ASCII zu unterschieden. Allerdings beanspruchen Zeichen außerhalb des ASCII-Bereiches mehrere Bytes.
UCS2 hingegen nutzt immer 2 Bytes pro Zeichen. Seit Win2000 nutzt Windows Utf16, das bei ausgefalleren Zeichen auch Surogate pairs nutzt. (Dann: 4 Bytes pro Zeichen!)
Delphis neuer UnicodeString ist Utf16 und für einen sehr großen Zeichenbereich kompatibel mit UCS2.

Der große Unterschied ist das BOM. Bei UTF8 ist die Byteorder fest vorgeschrieben, braucht also kein BOM, und deshalb ist es ASCII-kompatibel.
UCS2 hat vorne ein BOM, welches sagt wie herum Words ablegt werden (Big/Little Endian)


Firebird ist was Charsets angeht allerdings ziemlich grauenvoll. Der Client ist nicht in der Lage Charsets zu übersetzen, was bei mir schon zu einigem sinnlosen Ärger führte.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat