Zeichensatz erweitern
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 440
- Registriert: Mo, 30. Mai 2011 15:06
- Danksagung erhalten: 1 Mal
Zeichensatz erweitern
Hi, ich habe versucht Sonderzeichen wie zb Δ oder Alpha in eine DB zu speichern.
Leider wird das alpha in ein a und das "Δ"in ein "?" umgewandelt.
Hat jemand ne Idee, wie ich diese Zeichen ZUSÄTZLICH mit in den Zeichensatz aufnehmen kann ?
Leider wird das alpha in ein a und das "Δ"in ein "?" umgewandelt.
Hat jemand ne Idee, wie ich diese Zeichen ZUSÄTZLICH mit in den Zeichensatz aufnehmen kann ?
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Zeichensatz erweitern
Zusätzlich geht gar nicht, du könntest in der DBF eine grundsätzlich andere Zeichentabelle nutzen (DBFNTX nutzt normalerweise PC-850).
Osteuropäische Computer nutzen einen mit kyrillischen bzw. griechischen Zeichen. Grundsätzlich wird aber IMMER ein Zeichenwert gespeichert.
z.B. 65 ="A" dass dies "zufällig" in allen (mir bekannten) PC-Sprachsätzen auch so ist, kann man dieses bedenkenlos übersetzen (7 bit ASCII).
Alles über 127 ist mehr oder weniger Landesspeziefisch, aber dennoch immer die gleiche ZAHL in dem Byte.
Wenn möglich, könntest du statt dem DBFNTX den FOXCDX nutzen und die DBF NACH set charset to ansi füllen.
Im westlichen ANSI Zeichensatz sind mehr Sonderzeichen enthalten, aber ob deine Zeichen enthalten sind weiß ich jetzt nicht.
Nimmt man einen anderen Zeichensatz (östlich etc.) gilt das gleiche Problem, dass ein Byte in der DBF nicht eindeutig das Zeichen identifiziert, sondern man auch noch die Zeichensatztabelle wissen muss. Normalerweise ist das kein Problem, solange Entwickler und Kunde dem gleichen Sprachkreis angehören.
Es gibt einige Beiträge von Jimmy und auch anderen die Zeichensatzprobleme behandeln.
Eine saubere Lösung wird aber ohne UNICODE Controls und Datenbanken nicht möglich sein.
Aktuell kann Xbase++ native damit nicht umgehen, eventuell hat Jimmy bald ein "natives" SLE im Angebot, die letzten Listboxen in chinesisch sahen gut aus.
Osteuropäische Computer nutzen einen mit kyrillischen bzw. griechischen Zeichen. Grundsätzlich wird aber IMMER ein Zeichenwert gespeichert.
z.B. 65 ="A" dass dies "zufällig" in allen (mir bekannten) PC-Sprachsätzen auch so ist, kann man dieses bedenkenlos übersetzen (7 bit ASCII).
Alles über 127 ist mehr oder weniger Landesspeziefisch, aber dennoch immer die gleiche ZAHL in dem Byte.
Wenn möglich, könntest du statt dem DBFNTX den FOXCDX nutzen und die DBF NACH set charset to ansi füllen.
Im westlichen ANSI Zeichensatz sind mehr Sonderzeichen enthalten, aber ob deine Zeichen enthalten sind weiß ich jetzt nicht.
Nimmt man einen anderen Zeichensatz (östlich etc.) gilt das gleiche Problem, dass ein Byte in der DBF nicht eindeutig das Zeichen identifiziert, sondern man auch noch die Zeichensatztabelle wissen muss. Normalerweise ist das kein Problem, solange Entwickler und Kunde dem gleichen Sprachkreis angehören.
Es gibt einige Beiträge von Jimmy und auch anderen die Zeichensatzprobleme behandeln.
Eine saubere Lösung wird aber ohne UNICODE Controls und Datenbanken nicht möglich sein.
Aktuell kann Xbase++ native damit nicht umgehen, eventuell hat Jimmy bald ein "natives" SLE im Angebot, die letzten Listboxen in chinesisch sahen gut aus.
Gruß
Hubert
Hubert
-
- Rekursionen-Architekt
- Beiträge: 440
- Registriert: Mo, 30. Mai 2011 15:06
- Danksagung erhalten: 1 Mal
Re: Zeichensatz erweitern
hm ok. das ganze ist wohl doch ein wenig komplexer wie ich erwartet hatte^^.
Dann klick ich mich einfach mal ein wenig durchs Forum, vllt finde ich ja doch noch etwas, was bei mir passt.
Danke
Dann klick ich mich einfach mal ein wenig durchs Forum, vllt finde ich ja doch noch etwas, was bei mir passt.
Danke
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Zeichensatz erweitern
Theoretisch kannst Du Deine Zeichencodierung auch selbst vornehmen. Also beispielsweise statt des Originals einen Hexadezimalwert in der Tabelle speichern (und beim Lesen wieder umrechnen). Das könnte aber etwas unhandlich werden. Bei Fließtexten bietet es sich an, RTF zu speichern. Dafür benötigt man allerdings noch die entsprechenden Controls für Eingabe und Darstellung.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Zeichensatz erweitern
welche DBE nimmst du ?Benz hat geschrieben:Hi, ich habe versucht Sonderzeichen wie zb Δ oder Alpha in eine DB zu speichern.
Leider wird das alpha in ein a und das "Δ"in ein "?" umgewandelt.
grundsätzlich kann man "alles" in einer DBF speichern ... ob man es "so" wie "raus bekommt" ist eine andere Sache
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 440
- Registriert: Mo, 30. Mai 2011 15:06
- Danksagung erhalten: 1 Mal
Re: Zeichensatz erweitern
wie meinst du das welche dbf ? Die "normale" wenn es sowas gibt .
naja wie oben gesagt ich speichere "Δ" in die DBF und bekomme ein "?" raus. Wenn ich das Zeihcen für alpha speichere bekomme ich ein "a"
naja wie oben gesagt ich speichere "Δ" in die DBF und bekomme ein "?" raus. Wenn ich das Zeihcen für alpha speichere bekomme ich ein "a"
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Zeichensatz erweitern
OEM oder ANSI ?Benz hat geschrieben:wie meinst du das welche dbf ? Die "normale" wenn es sowas gibt .
ich halte es für eine "normale" OEM <-> ANSI Konvertierung ... die macht so was.
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 440
- Registriert: Mo, 30. Mai 2011 15:06
- Danksagung erhalten: 1 Mal
Re: Zeichensatz erweitern
Ich denke mal, dass es dann diese sein wird. Und wie bekomme ich eine andere Konvertierung hin ? Hab das noch nie gemacht.
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Zeichensatz erweitern
entweder du versuchst es mit ANSI oder OEM mit UNICODE Font ( ArialUni.TTF )Benz hat geschrieben:Ich denke mal, dass es dann diese sein wird. Und wie bekomme ich eine andere Konvertierung hin ? Hab das noch nie gemacht.
wie Hubert schon sagte versuche ich die "native" Controls nun mit UniCode für PostgreSQL.
Die Controls selbst scheinen damit jetzt schon zu arbeiten aber leider hab noch nicht alle Xbase++ "gewohnten" Methoden / iVar eingearbeitet sodass man die (noch) nicht "einfach" durch ein #Xtranslate "ersetzten" kann.
gruss by OHR
Jimmy
Jimmy