ANSI oder OEM?

Vom Front-End bis SOAP.

Moderator: Moderatoren

Antworten
Benutzeravatar
Klaus Schuster
Foren-Administrator
Foren-Administrator
Beiträge: 366
Registriert: Do, 24. Jan 2008 10:01
Wohnort: 90762 Fürth
Hat sich bedankt: 9 Mal
Danksagung erhalten: 9 Mal

ANSI oder OEM?

Beitrag von Klaus Schuster »

Moin Leute,

gibt es eine Möglichkeit sicher festzustellen ob einen Zeichenkette ANSI oder OEM Zeichen enthält? Derzeit behelfe ich mir damit:

Code: Alles auswählen

   LOCAL lAnsi    := FALSE
   LOCAL nLaenge  := 0
   LOCAL nZeichen := 0

   cText   := AllTrim( cText )
   nLaenge := Len( cText )

   FOR nZeichen := 1 TO nLaenge

      DO CASE
         CASE Asc( cText[ nZeichen ]) < 128
         CASE Chr( Asc( cText[ nZeichen ])) $ 'äöüÄÖÜß'

            lAnsi := TRUE
            EXIT

      ENDCASE

   NEXT
Funktioniert, deckt aber nicht alle Zeichen ab. Die Anwendung arbeitet aus Kompatibilität mit CHARSET_OEM.
Gruß Klaus
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: ANSI oder OEM?

Beitrag von ramses »

Hallo Klaus

so einfach ist das nicht.
Wenn du nicht anhand der Datenquelle unterscheiden kannst es kommen nun ANSI oder OEM Zeichen würde ich deine Abfrage um alle relevanten Zeichen erweitern.

Ich entscheide nach der Datenquelle zwischen UTF8 OEM ANSI und wandele die Strings entsprechend.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Klaus Schuster
Foren-Administrator
Foren-Administrator
Beiträge: 366
Registriert: Do, 24. Jan 2008 10:01
Wohnort: 90762 Fürth
Hat sich bedankt: 9 Mal
Danksagung erhalten: 9 Mal

Re: ANSI oder OEM?

Beitrag von Klaus Schuster »

Moin Carlo,

Danke, dass Du bestätigst, was ich bereits vermutet habe. Die Quellen sind leider unterschiedlich. Es bleibt nur die Funktion um alle eindeutig unterscheidbaren Zeichen zu erweitern, und somit eine Annäherung zu erreichen.
Gruß Klaus
Antworten