AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Textdatei Encoding feststellen ohne BOM
Thema durchsuchen
Ansicht
Themen-Optionen

Textdatei Encoding feststellen ohne BOM

Ein Thema von jobo · begonnen am 17. Mär 2011 · letzter Beitrag vom 17. Mär 2011
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Textdatei Encoding festellen ohne BOM

  Alt 17. Mär 2011, 17:34
..Textdatei, hier CSV Daten offensichtlich nicht ASCI/ANSI kodiert ist ..
Wenn das so offensichtlich ist, dann gibt es ja wohl ein Problem mit den "einfachen" Buchstaben (abcd...xyz) also könnte es z.B. EBCDIC sein (Blank=x40 statt x20, 0..9=xF0..xF9).
Wenn der HexDump an jeder zweiten Stelle eine x00 aufweist, dann handelt es sich wohl um einen 16Bit Code.
Wenn es nur manchmal ein paar Ausreißer gibt, dann ist wohl UTF8 dafür verantwortlich.

Kann man auf diese Weise das Problem näher eingrenzen?

Gruß
K-H
Edith:
Problem ist, dass es durchaus Texte gibt, die z.B. keine Umlaute enthalten. Da die normalen Buchstaben in allen (gängigen) Codierungen gleich sind, kann die Codierung auch nur erraten werden wenn auch Sonderzeichen vorkommen.
Dann ist es völlig wurscht mit welcher Codierung man arbeitet.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (17. Mär 2011 um 17:36 Uhr)
  Mit Zitat antworten Zitat
ele

Registriert seit: 18. Feb 2009
129 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Textdatei Encoding festellen ohne BOM

  Alt 17. Mär 2011, 18:06
Problem ist, dass es durchaus Texte gibt, die z.B. keine Umlaute enthalten. Da die normalen Buchstaben in allen (gängigen) Codierungen gleich sind, kann die Codierung auch nur erraten werden wenn auch Sonderzeichen vorkommen.
Dann ist es völlig wurscht mit welcher Codierung man arbeitet.
In der Regel ja, aber es gibt immer Ausnahmen.

Gegenbeispiel (frei geguttenbergt aus Wikipedia):

Zitat:
The currency sign (¤) is a character used to denote a currency, when the symbol for a particular currency is unavailable.
Angenommen das ganze ist in Windows-1252 codiert, wird aber (da es ja völlig wurscht ist) per Default als ISO 8859-15 interpretiert, dann kommt raus:


Zitat:
The currency sign (€) is a character used to denote a currency, when the symbol for a particular currency is unavailable.
Und diese Aussage ist definiv nicht korrekt.

q.e.d
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Textdatei Encoding festellen ohne BOM

  Alt 17. Mär 2011, 19:38
Eingrenzbar wäre es schon. EDBCDIC ist es rein optisch gar nicht. Es geht momentan um CSV ua mit Namen, Straßen, (vermutlich deutsche) Orte, die Probleme sind auf Umlaute beschränkt, der Rest ist singlebyte..momentan
Man könnte es aber aufgrund der "Datenstruktur" notfalls hart vergleichen.

Thema ASCI/ANSI:
Ich hab irgendwo im Internet gelesen (und find es nicht mehr), dass bestimmte Bytes (254, 255 , ..) nicht in der einen oder anderen Codierung vorkommen. Bei ASCII kann ich mir das schwer vorstellen. Die anderen Codierungen kenne ich kaum, halte aber systemische Lücken für denkbar.

Die (2.) Funktion von Himitsu habe ich nicht verstanden, vlt die zweite mit einem anderen Namen?
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Textdatei Encoding festellen ohne BOM

  Alt 17. Mär 2011, 19:39
am sichersten ist es, wenn du den Benutzer entscheiden lässt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Textdatei Encoding feststellen ohne BOM

  Alt 17. Mär 2011, 19:43
Ja, das macht er ja momentan, aber mit steigender Frequenz sinkt die Lust.
Und einer vollständigen Automatisierung der Verarbeitung ginge das auch nicht.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz