AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?
Thema durchsuchen
Ansicht
Themen-Optionen

Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

Ein Thema von TheMiller · begonnen am 17. Jul 2011 · letzter Beitrag vom 17. Jul 2011
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von TheMiller
TheMiller

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

Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 11:22
Hallo,

wie einige sicher wissen, habe ich gestern angefangen, auf Delphi 2009 zu portieren. Da sich ja einiges geändert hat, habe ich natürlich auch einige Fragen.

Vorab: Meine Anzeige und das Speichern von Daten funktioniert soweit richtig, allerdings muss ich bei dem Lesen der Daten mit einem UTF8ToString casten - ich weiß nicht, ob es an der Komponente liegt, an der Delphi VCL oder an was ganz anderem.

Ich habe mal durch das Programm in die Datenbank deutschen, französichen und arabischen Text eingetragen. Hat auch geklappt. Nur bei Titel "Test" (arabisch) zeigt der "????" an - der arabische Text im RichEdit "Test" wurde aber richtig gespeichert und dargestellt.
Allerdings alles nur, wenn ich beim Auslesen UTF8ToString benutze.

Ist das nun alles richtig, oder stimmt da immer noch was nicht? Jetzt erstmal die technischen Einzelheiten und ein paar Screenshots.

Also:
Datenbank: Firebird 2.1 embedded
Zugriff über: Zeos SVN 7.0.1 alpha (angeblich Unicode-fähig mit D2009 und firebird)
Tabellen/Spalten-Charset: UTF8
Tabellen/Spalten-Collate: UTF8
ZConnection.Parameters.Add('codepage=utf8');
ZQuery.Parameters.Add('codepage=utf8');
Schreiben in die DB: ZQuery.ParamsByName('titel').AsString:=Objekt.Tite l;
Lesen aus der DB: Objekt.Titel:=UTF8ToString(ZQuery.FieldByName('titel').AsString);


Mehr habe ich nicht eingestellt. Bilder vom Programm und der Datenbank im Anhang.

Vielen Dank im Voraus!
Miniaturansicht angehängter Grafiken
arabisch.png   franzoesisch.png   datenbank.png  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 11:27
Zitat:
Delphi-Quellcode:
Schreiben in die DB: ZQuery.ParamsByName('titel').AsString:=Objekt.Titel;
Lesen aus der DB: Objekt.Titel:=UTF8ToString(ZQuery.FieldByName('titel').AsString);
Einmal UTF8 und dann wieder nicht?

Entweder auch beim Schreiben ein Umkodieren einbauen,
oder, wenn dieses schon im AsString verbaut ist, dieses beim Lesen weglassen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 11:37
Genau das ist ja mein Problem.

Lasse ich die UTF8ToString-Umwandlung weg, habe ich wieder die encoding-Fehler. Hab grad nochmal ein Bildchen gemacht.

Das verstehe ich ja eben auch nicht... Ich möchte keine AnsiStrings haben. WENN ich schon umstellen muss, dann will ich jetzt auch full-unicode haben

Bilder von der Datenbankdefinition und den neuen Ergebnissen OHNE Utf8ToString habe ich angehängt.
Miniaturansicht angehängter Grafiken
neuarabisch.png   neudeutsch.png   neufranzoesisch.png   dbtitel.png   dbartikel.png  

  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 11:41
Das Problem scheint aber Zeos zu sein, denn die datenbank verwendet Unicode (UTF8) und Delphi strings sind auch Unicode (UTF-16).
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 11:47
Zitat:
Lasse ich die UTF8ToString-Umwandlung weg, habe ich wieder die encoding-Fehler.
Und wenn du mal das UTF8Encode beim Schreiben reinmachst?

Wenn etwas Ansi kann und den Text nicht unbedingt aufwändig verarbeiten/vergleichen muß, dann ist UTF-8 ja nahezu kompatibel zu ANSI.
(darum wurde UTF-8 ja erschaffen und wenn man ganz sicher gehn will, dann kann man UTF-7 nutzen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 11:52
Zitat:
Wenn etwas Ansi kann und den Text nicht unbedingt aufwändig verarbeiten/vergleichen muß, dann ist UTF-8 ja nahezu kompatibel zu ANSI.
Die Zeichen, die den ersten 7Bits entsprechen sind die selben. Ich würde aber nicht von Kompatibilität reden, da bei Ansi jedes Zeichen 8Bit hat und bei UTF8 nicht! Sobald Sonderzeichen vorkommen kommt bei der Betrachtung als Ansi Müll raus.
Zitat:
Und wenn du mal das UTF8Encode beim Schreiben reinmachst?
Dann aber als Ansistrinmgs aus der Datenbank Lesen und Schreiben.
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: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 12:04
Das wäre wirklich seehr ungünstig.

Habt ihr eine Idee, wie ich die Zeos-Codes patchen kann, oder soll ich "einfach" umsteigen. Falls letzteres, würde ich euch gerne fragen, welche kostenlosen Alternativen es gibt. Ich kann mir derzeit für dieses Programm nicht noch eine Komponente kaufen.

(Ja ich weiß, an einer Datenbankkomponente sollte man nicht sparen.. einmal investiert und dann quasi problemfrei. Das mag richtig sein - geht aber wirklich nicht )

PS: Die Zeos-Entwicklung scheint ja auch nicht mehr richtig weiter zu gehen, oder?

Rote Box:

Also, hab nochmal neue Bilder/Einträge gemacht, mit/ohne utf8encode etc. Im JVRichEdit wird IMMER das richtige angezeigt, egal wie ich speicher. Das verwirrt. In der TreeView und dem Label tauchen die encoding-Fehler auf.
Miniaturansicht angehängter Grafiken
auslesen.png   auslesen2.png   dbneu.png  
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

AW: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 12:42
Also ich hatte letztens auch Probleme mit Zeos und der Codierung. Bei mir waren es Probleme in die Senderichtung beim Speichern von neuen Einträgen.
Hast Du sonst mal die neueste SVN REV von Zeos probiert?
Im Forum bei denen wurden bereits andere Unicode Fixes diskutiert, musst mal schauen ob die bereits ins SVN eingeflossen sind ...

Aber an sich hast du Recht, dass die Aktivität bei Zeos insgesamt gesehen recht gering geworden ist...

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

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

AW: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 13:00
Ich habe mir gestern via TortoiseSVN die wohl neusten gezogen. Also muss ich wechseln, oder? Was wäre empfehlenswert?
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Ist mein Programm jetzt wirklich Unicode? Trotz Umwandlung?

  Alt 17. Jul 2011, 13:45
Also ich musste eine Anwendung in Delphi 2009 ganz neu schreiben, damit es 100% tig Unicodefähig ist. Einfach ein altes Projekt in Delphi 2009 zu öffnen und weiter machen geht ohne Unicodeprobleme nicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 16:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz