Einzelnen Beitrag anzeigen

Papaschlumpf73
Online

Registriert seit: 3. Mär 2014
Ort: Berlin
435 Beiträge
 
Delphi 12 Athens
 
#1

UTF-8 codierte Zeichen im Quelltext verwenden und in Unicode decodieren

  Alt 17. Mai 2023, 12:06
In einer xsd-Datei habe ich die Pattern für TRegEx.Match, um alle Strings bzw. Eingaben zu überprüfen, ob alle Zeichen in einem bestimmten Zeichensatz enthalten sind. In UTF-8 sieht das etwa so aus (über 2000 Zeichen):

const A='( |'|[,-\.]|[A-Z]|[`-z]....';

Die Funktion zur Prüfung des Zeichensatzes brauche ich in mehreren Anwendungen und möchte die xsd nicht separat ausliefern oder als Ressource in jede Anwendung aufnehmen. Daher wollte ich das alles vereinfachen und die Pattern als const in die Funktion einbauen. In Unicode sieht das etwa so aus:

const B='( |''|[,-\.]|[A-Z]|[`-z]|~|¨|´|·...';

Das Dumme ist nur, das B nicht exakt mit dem aus dem xsd-Schema gelesenen Wert übereinstimmt, da der Delphi-Quelltexteditor wahrscheinlich nicht alle Zeichen 1:1 aufgenommen hat. Wahrscheinlich Sonderzeichen wie Zeilenwechsel, Tab usw.

Daher wollte ich mit const A arbeiten und diese UTF-8 codierten Zeichen erst in der Funktion in echte Unicode-Zeichen umwandeln. Das bekomme ich aber einfach nicht hin. Ich habe schon mit UTF8ToUnicodeString, UTF8Decode usw. herumgespielt. Es kommt aber immer wieder Variante A statt B dabei heraus.

Weiß jemand, wie ich die Zeichenfolge aus A (in der o.g. Form) in den Quelltexteditor bekomme und anschließend in die richtigen Unicode-Zeichen konvertiert bekomme? Wie gesagt, mit der xsd ist das kein Problem - es soll aber deutlich schlanker werden. Danke Euch!
  Mit Zitat antworten Zitat