Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Einlesen von KAPUTTER Unicode-Datei

  Alt 5. Feb 2019, 12:00
Hallo!

Bein Einlesen einer Datei erhalte ich die Exception "Keine Zuordnung für Unicodezeichen in der Multibyte-Zielcodeseite vorhanden". Beim Durchschauen habe ich festgestellt, es sind in der Datei tatsächlich ALLE Sonderzeichen geschrottet und durch die Zeichenfolge
Code:
�
(aus ANSI-Sichtweise, alle gleich, egal was es vorher mal war) ersetzt worden. Das ist serverseitig passiert und außerhalb meines Einflussbereiches. Das ist zwar doof, sollte aber nicht dazu führen dass mein Programm beim Einlesen aufgibt. Vielmehr hätte ich gerne, dass nicht dekodierbare Unicode-Zeichen als "?" ausgegeben werden. Kann man das mit wenig Aufwand hier ergänzen oder muss ich die gesamte Datei "zu Fuß" scannen?
Delphi-Quellcode:
  LReader := TStreamReader.Create(AStream, TEncoding.Unicode, True, 2048);
  try
    FZeileNr := 0;
    while LReader.Peek >= 0 do begin
      ZeileVerarbeiten(LReader.ReadLine);
      Inc(FZeileNr);
    end;
  finally
    FreeAndNil(LReader);
  end;
Das ist auch insofern sehr wichtig, damit nicht dekodierbare Zeichen nicht dazu führen, dass sich Multibyte-Zeichen zu mehreren Singlebyte-Zeichen "vermehren" weil das die Logik durcheinander bringt.
Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat