Zeichensatz erweitern

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Zeichensatz erweitern

Beitrag von Benz »

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 ?
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zeichensatz erweitern

Beitrag von brandelh »

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.
Gruß
Hubert
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Zeichensatz erweitern

Beitrag von Benz »

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 ;)
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Zeichensatz erweitern

Beitrag von Tom »

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
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zeichensatz erweitern

Beitrag von AUGE_OHR »

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.
welche DBE nimmst du ?
grundsätzlich kann man "alles" in einer DBF speichern ... ob man es "so" wie "raus bekommt" ist eine andere Sache ;)
gruss by OHR
Jimmy
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Zeichensatz erweitern

Beitrag von Benz »

wie meinst du das welche dbf ? :D Die "normale" wenn es sowas gibt :D.
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" ;)
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zeichensatz erweitern

Beitrag von AUGE_OHR »

Benz hat geschrieben:wie meinst du das welche dbf ? :D Die "normale" wenn es sowas gibt :D.
OEM oder ANSI ?
ich halte es für eine "normale" OEM <-> ANSI Konvertierung ... die macht so was.
gruss by OHR
Jimmy
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Zeichensatz erweitern

Beitrag von Benz »

Ich denke mal, dass es dann diese sein wird. Und wie bekomme ich eine andere Konvertierung hin ? Hab das noch nie gemacht.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zeichensatz erweitern

Beitrag von AUGE_OHR »

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.
entweder du versuchst es mit ANSI oder OEM mit UNICODE Font ( ArialUni.TTF )

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
Antworten