Einzelnen Beitrag anzeigen

Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#1

Jonglieren mit Strings, Widestrings, Unicode, UTF-8 et.al.

  Alt 9. Okt 2006, 17:49
Hallo zusammen,

ich grübel gerade über ein Problem nach, das sich bestimmt mal wieder supereinfach lösen lässt

Ich habe ein COM-Objekt, das mir einen Freitext in einem Puffer liefert der 512 Bytes gross ist und somit 256 Unicode-Zeichen (UTF-16, oder, da Windows, besser gesagt UCS-2) enthalten kann. Da drin steckt also ein nullterminierter Unicodestring.

Den in einen normalen String zu konvertieren ist nicht das Problem (das mache ich mit WideCharToString), nur habe ich dann in meinem normalen String ja durchaus auch Zeichen die mehr als ein Byte lang sind. Zumindest sagt die Delphi-Hilfe ja
Zitat:
"WideCharToString konvertiert den angegebenen nullterminierten Unicode-String in einen String mit Einzel- oder Multibyte-Zeichen."
Klingt für mich nach einer Konvertierung in UTF-8? Oder was steckt dann sonst im String?

Auf jeden Fall möchte ich nun ein paar "Müllzeichen" (es sind zum Beispiel Tabs drin enthalten die bei der Ausgabe stören) entfernen, jedoch müsste ich ja auf die Länge der einzelnen Zeichen acht geben, um wenn zum Beispiel asiatische Zeichen drinständen, die nicht gnadenlos zu verhackstücken. Wie mach ich das denn nun am elegantesten? Mein Code sollte halt nicht annehmen, dass nur ASCII im Feld steht.

Für jegliche Pointer, Tipps, Hinweise und Kommentare bin ich herzlich dankbar!

Edit: Tippfehler behoben
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat