AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied UTF8 / Unicode

Ein Thema von TheMiller · begonnen am 16. Jul 2011 · letzter Beitrag vom 16. Jul 2011
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

AW: Unterschied UTF8 / Unicode

  Alt 16. Jul 2011, 14:50
Die Konvertierung sollte deine Zugriffsbibliothek erledigen.
Verstehe ich gerade nicht. Meine Zugriffsbibliothek ist meine Datenbankklasse mit den Methoden "Write","Read","Change","Delete" etc.

Nun habe ich in meinem Post vorgeschlagen, in diesen Methoden die Konvertierung mittels utf8encode einzubauen.

Was du mir geschrieben hast, bedeutet das ein "Ja, kannst du so machen", oder eher ein "Nein, das macht man ganz anders" Falls letzteres, dann habe ich deine Antwort nicht verstanden

Danke.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Unterschied UTF8 / Unicode

  Alt 16. Jul 2011, 14:55
Du verwendest also direkz fbclient.dll-Funktionen?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

AW: Unterschied UTF8 / Unicode

  Alt 16. Jul 2011, 15:02
Nein, ich benutze ZEOS zur Verbindung mit der Datenbank (Firebird Embedded).

Zur einfachen Steuerung habe ich mir eine Klasse geschrieben, die unter anderem die DB liest/schreibt. Diese Methoden sind so aufgebaut:

Delphi-Quellcode:
procedure TDBBase.Read(Obj: TObject);
var
  Test: TTest;
begin
  if (Obj is TTest) then
  begin
    Obj.Property1:=getString('[SPALTEN_NAME]');
  end;
end;

//ReadString:
function TDBBase.getString(Field: string): String;
begin
  if (fdbUTF8) then
  begin
    result:=utf8decode(ZQuery.FieldByName(Field).AsString);
  end else
  begin
    result:=ZQuery.FieldByName(Field).AsString;
  end;
end;
Ein aufruf erfolgt dann so:

Delphi-Quellcode:
var
  Test: TTest;
begin
  Test.ID:=20;
  Read(Test);
  ShowMessage(Test.Property1);
  Test.Free;
end;
So habe ich das bisher immer gemacht. Wenn UTF8 auf True steht, wird Zeos als Verbindungsparameter "codepage=utf8" übergeben. Das hat bis Delphi 2009 super funktioniert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Unterschied UTF8 / Unicode

  Alt 16. Jul 2011, 15:09
ZQuery.FieldByName(Field).AsString liefert dir aber einen UnicodeString (UTF-16) und keinen UTF8 codierten RawByteString.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

AW: Unterschied UTF8 / Unicode

  Alt 16. Jul 2011, 15:15
Also liegt das Problem darin, dass in der Datenbank utf8 verwendet wird und Zeos (Version 7) einen "vollen" Unicode-String zurückgibt. Deswegen hat es auch funktioniert, als ich die Spalten auf "Unicode" gestellt habe. Habe ich das richtig verstanden?

Was würdest du mir jetzt raten? Das Programm ist schon länger im praktischen Einsatz und die Benutzer haben logischerweise auch viele Daten eingetragen. Soll ich nun meine Klasse abändern, oder soll ich versuchen, die Daten/Felder ins Unicode-Format zu bekommen?

Wie konvertiere ich denn zwischen utf8 und Unicode?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Unterschied UTF8 / Unicode

  Alt 16. Jul 2011, 15:21
Zeos scheint den Umschwung nach Unicode (UTF-16) noch nicht ganz geschafft zu haben.
http://zeosbugs.firmos.at/view.php?id=214
Wurde aber in Zeos7 Alpha gefixt
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

AW: Unterschied UTF8 / Unicode

  Alt 16. Jul 2011, 15:22
Hm.. ich habe aber Zeos 7 alpha.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz