Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:49

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Unicode - Unterstützung
BeitragVerfasst: Mi Nov 09, 2005 16:58 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Hallo,

ein seit 1997 bestehendes Projekt, damals Delphi 1, ist seit langem auf auf Win32 umgestellt worden. Dabei werden intern zu 99% der Typ String für die Verwaltung von Zeichenketten verwendet.

Nun zeichnet sich ab, das wir Sonderzeichen aus dem kyrilischen, baltischen und asiatischen Raum verwenden müßen. Die Daten werden über direkte SQL - Befehle manipuliert, also es werden kaum DB-Aware Komponenten verwendet.

Was muss, neben der Änderung der Standardsteuerelemente in Unicode - Steuerelemente, noch alles angepasst werden? Muß ich jetzt jeden String in WideString umändern?

Gruß
Thomas

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 10, 2005 11:47 
Offline
DGL Member
Benutzeravatar

Registriert: So Feb 06, 2005 17:29
Beiträge: 187
Programmiersprache: C, C++
Ja, dass würde mich auch interessieren.

Ich hab mir einen kleinen Vokabeltrainer fürs Chinesisch geschrieben. Leider funktionierte Unicode nicht, auch nicht mit Widestring :?
Ich hab das ganze dann kurzerhand in Net gemacht, weil dort auch intern Unicode verwendet wird.
Wie gesagt, die Lösung für dieses Problem würde ich aber trotzdem gerne wissen (Wenn ich dann z.B. Arabisch lerne :roll: )

_________________
Flummi: Projektseite und Projektthread


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 10, 2005 12:00 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Kenne mich damit nicht wirklich gut aus aber nach meinem Wissenstand muss man überall wo Unicode zum Einsatz kommen soll auch Widestrings benutzen. Und auch die entsprechenden API Methoden mit der Endung W.

Die Standarddelphicontrols können wohl gar keine Unicodes. Dazu müsste man sich selber welche schreiben oder bereits geschriebene benutzen. Welche Unicode unterstützen weiß ich nicht.

Finalspace hat damit aber schon mal recht viel in seinem Player gemacht.

PS: Mike Lischke hat auch eine Unicodelibrary geschrieben. Könnte ganz nützlich sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 10, 2005 14:01 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Also ich kenn mich mit dem Unicode unter Delphi aus.
Hatte schon öfters das vergnügen damit zu basteln.

Wenn man 100% Unicode unterstützung haben will, sollte man sich die TNT Unicode Controls komponenten laden und nur noch diese einsetzten. Da hat man support für echte Widestrings (UTF-16).

Das lesen/schreiben ist dann nur noch abhängig von der API welche ihr benutzt.
Wenn eure SQL Datenbank widestrings zurückliefern kann ist das ganze stressfrei.

Wenn da aber nur AnsiStrings rauskommen und intern aber in UTF-8 kodiert ist dann müsst ihr beim einlesen das ganze von AnsiString nach WideString konvertieren.

Falls eure DB nur AnsiStrings kann dann müsst ihr anderst vorgehen, dann müsst ihr selbst nach UTF-8 konvertieren und wieder back zu WideString.

UTF-8 = ASCII Zeichen Fake Unicode
UTF-16 = 16 byte pro Unicode char
UTF-32 = 32 byte pro unicode char

In wikipedia gibts auch infos zu UTF-8:
http://en.wikipedia.org/wiki/UTF-8

Ich hab einige Beispielsources mal gebastelt welche UTF-8 und AnsiStrings, UTF-16 usw benutzen.
Falls es hängt, kann ich gern was posten.

Hoffe geholfen zu haben,
Final


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 10, 2005 18:15 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
An die TnT - Controls habe ich auch gedacht, dazu wird TVirtualTreeView als Ersatz für die DBGrid - Komponenten verwendet werden. Der Rest heißt dann manuelle Konvertierung. Leider wird das keine kleine Geschichte sein, mit den Fremdkomponenten, alle im Source vorhanden, sind rund 1Mio - Zeilen nun auf Unicode zu prüfen. Das wird wohl eine harte Nuss werden.

Naja, dann kann gleich ein Code-Cleanup gemacht werden, so schlägt man zwei Fliegen mit einer Klappe.

Grund und Danke
Thomas

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 11, 2005 09:05 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Jop, ich kann nur empfehlen von anfang an an Unicode zu denken.

Bei dem Xenorate 3 projekt benutzt ich Unicode an den Stellen wo ich es denke es gebraucht zu werden.
Wenn ich nen neues programm anfange, dann denk ich dran das es mind. UTF-8 tauglich ist.

Das schwierige an unicode wenn man alles selber machen will, und nicht TNT unicode controls welche unter FreePascal eh nich gehen ist nur das eigene direkte schreiben in Edit boxen, Memos usw, also da wo man selber was einträgt.

Wenns nur ums lesen und anzeigen geht dann is das easy.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]