Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: CSV mir gemischter Codierung lesen

  Alt 28. Jul 2016, 23:40
In einem Datenfeld ist es aber korrekt Codiert?
Falls ja würde ich die Daten nach Zeilen/Spalten auftrennen und dann dort versuchen die Codierung zu erkennen.
Ich denke, dass es in einem Feld nur eine Codierung gibt.
Da aber das Semikolon Teil der Codierung ist, ist das Trennen der Felder etwas aufwändiger.

Am besten wäre es mal in der Datenquelle zu prüfen was drinnensteht und damit meine ich nicht die CSV Datei sondern wo wie herkommt. Du kannst das mal jetzt so patchen wie angeführt. Aber bitte lass den Datenunsinn beheben.
Ja, das wäre natürlich der logische Ansatz. Aber ich stehe nicht das erste mal vor solchen Situationen.
Diese Kämpfe haben nur leider die höchste Misserfolgsbilanz...

* Datei als ANSI laden
* Schauen, ob das Feld (jeder Wert einzeln und nicht für ganze Zeilen/Datei) "valides" UTF-8 enthält
* wenn ja, dann das UTF-8 dekodieren, nach Unicode
* wenn nein, dann von ANSI (definierte CodePage) nach Unicode
** überleg dir hier, was dein Standard-Encoding ist ... z.B. CodePage 1252 (Latin 1 / ISO 8859-1), CodePage 1250 (Latin 2 / ISO 8859-2) oder CodePage weißichgradnicht (Latin-9 / ISO/IEC 8859-15)
* und zum Schluß noch ein HTML-Encode drüber jagen

und ich würde den verhauen, der so eine CSV generieren lässt und keine passende Dokumentation/Spezifikation liefert ... aber alleine schon für so einen Mischmasch gehört er gerädert.
Das Letzte wäre sicher sinnvoll...
Beim Code scheitert es momentan schon am Prüfen des "validen" UTF-8.
Da ich das bis morgen lösen muss, habe ich das nun doch schnell mit StringReplace realisiert.

Vielen Danke für die Lösungsansätze.

Frank
Frank Reim
  Mit Zitat antworten Zitat