Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: GUIDToString: welche Feldgrösse in der DB?

  Alt 3. Mär 2016, 13:09
Ja, 36 Zeichen sind auch 36 Zeichen, aber vom "internen" Speicher her halt nicht.

DBMS arbeiten gern mit festen Größen.
36 Unicode-Zeichen brauchen immer 36*2 Byte.
Als ANSI, je nach CodePage 36 Byte oder mehr. (MultiByteZeichensätze)
UTF-8 ist im Prinzip "ANSI" mit der Codepage 65001.

UTF-8-Zeichen können bei "UCS2" bis zu 4 Byte pro Zeichen benötigen und wenn das DBMS jetzt eine feste Größe braucht/will, dann muß es von einem String mit maximaler Länger und mit den "schlimmsten" Unicode-Zeichen ausgehen.
MaxString := #65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535#65535;

Voller UTF-16-Umfang (#0..#$10FFFF) ging bis zu 5 Byte in UTF-8 (glaub ich) und genau 2 Byte ohne und 4 Byte mit Surrogates im UTF-16.
$2B or not $2B

Geändert von himitsu ( 3. Mär 2016 um 13:24 Uhr)
  Mit Zitat antworten Zitat