Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#3

Re: unvollständige MultiByte-Zeichen erkennen

  Alt 29. Apr 2009, 09:56
Zitat:
Multibyte? Das sind Zeichenketten, die aus einem Standard-SingleChar-Zeichensatz bestehen, wovon ein/mehrere Sonderzeichen definiert sind, die nachfolgende Chars zur Bildung des erweiterten Zeichens brauchen?
jupp

z.B.:
ISO-2022-JP (CodePage 50220), EUC-JP (CodePage 51932) und SHIFT-JIS (CodePage 932)
http://en.wikipedia.org/wiki/Shift-JIS
http://de.wikipedia.org/wiki/Shift_JIS


Nur ich möchte nicht unnötig massig Zeichen verwerfen, nur weil ich nicht "sicher" erkennen kann, ob die vollständig sind.

oftmals sind es ja nur 2-Byte-Zeichenfolgen, aber so muß es nicht immer.

z.B. UTF-8 ist sozusagen auch ein Multibyte-Zeichensatz und da können theoretisch bis zu 9 Zeichen in Folge zusammengehören. (Praktisch dort ist allerdings, daß man aus dem ersten Zeichen direkt über dessen Bits auslesen kann wieviele Folgezeichen dazugehören und die Folgezeichen auch alle ein ganz bestimmtest Bitmuster enthalten, welches sie als Solches erkennen läßt)

Meist ist es aber so, daß ein Trailing-Byte (Folgezeichen) nicht einzeln als solches erkennbar ist und auch das Leadingbyte (Startzeichen) selbst keine Auskunft gibt wieviel noch folgt und es auch keine Endmarkierung gibt.


[add]
So, ich laß grad mal 'nen Test über alle 1-4 Byte-Kombinationen laufen ud mir je Byte-Komination die Länge ermitteln.

Und das für die aktuell 23 wichtigsten Codepages ... aber schon seit dem 3. Durchgang mit der Pseudo-Unicode-Codepage (Codepage: 1200) läuft es voll langsam ... da die Funktion CharNextExA dort gut 1000 Mal langsamer ist, als den vorherigen UTF-7 und UTF-8 ... mal sehn was danach der Rest macht
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat