AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Vorstellung Unit: File encoding detector

Vorstellung Unit: File encoding detector

Ein Thema von LTE5 · begonnen am 19. Nov 2017 · letzter Beitrag vom 15. Jan 2018
Antwort Antwort
Seite 2 von 2     12
Fukiszo
(Gast)

n/a Beiträge
 
#1

AW: Vorstellung Unit: File encoding detector

  Alt 15. Jan 2018, 09:16
Ich arbeite gerade an einem Tool namens "FileID".
Es identifiziert enorm viel Datei-Formate, über 3000 verschiedene binärer art.
Unter anderem auch Text dateien und deren "Encoding", was ich bei mir so realisiert hab:
ich les an offset 0 der datei das erste byte und bestimme dadurch mit was es codiert wurde.
Als referenz nahm ich mir Notepad++ und erstellte pro format ein paar dateien.
(des weiteren prüft mein tool ob irgendwelche nicht-lesbaren (binär) zeichen enthalten sind
um generell zu bestimmen ob's ne text-datei ist)
Ich hoff es hilft. (ist halt ne andere methode um ans ziel zu gelangen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Vorstellung Unit: File encoding detector

  Alt 15. Jan 2018, 09:58
Zitat:
ich les an offset 0 der datei das erste byte und bestimme dadurch mit was es codiert wurde.
Falsch!

Bei UTF-8 ist das BOM genau 3 Byte lang.
Im Prinzip ist das mit dem BOM recht einfach zu verstehen, denn es ist zufällig das Unicodezeichen #$FEFF welches mit dem jeweiligen Encoding (Codepage) codiert wurde und was praktisch an erster Stelle des decodierten Unicode-Textes steht.

siehe $FFFE http://www.unicode.org/charts/PDF/UFFF0.pdf
https://de.wikipedia.org/wiki/Byte_Order_Mark
Seinen Namen hat das Byte-Order-Mark von den Codes $FFFE und $FEFF der UTF-16 / UCS2 in Big Endian und Little Endian.


Bei vielen "Binär"-Dateien ist das Magic-Byte, auch wenn es sich "Byte" nennt oft 2 bis 4 Byte lang.
z.B. "PE" bei Portable Execute, also den kompilierten EXE und DLL (und BPL, welche auch "nur" aufgemotzte DLL sind)



Und was sind "nicht-lesbare (binär) zeichen"?
Bei Chinesisch, Russisch, Swahili und Dergleichen, ist für "uns" Vieles nicht lesbar.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Jan 2018 um 10:04 Uhr)
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#3

AW: Vorstellung Unit: File encoding detector

  Alt 15. Jan 2018, 10:27
nicht lesbar = code $00 - $21 (oder war's $23?) zum beispiel.
mit nicht lesbar mein ich man sollte nicht versuchen diese ascii codes darzustellen, sie enthalten keine "schriftzeichen", egal von wo.
und ich start meine identifizierung mit dem ersten byte, danach geht identifierung weiter mit zweitem dritten usw.
es gibt viele dateien deren signatur mit $FF beginnt.

ich hoff es hilft.

ps: ich gab ja keine werte zum vergleich an, ich meint halt nur das ich signaturen per byte abfrage kontrolliere,
und nicht per CLASS definitionen auslese.

Geändert von Fukiszo (15. Jan 2018 um 10:30 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Vorstellung Unit: File encoding detector

  Alt 15. Jan 2018, 10:30
Moin,

weitere Ideen sind ja grundsätzlich nichts schlechtes. Aber ich bin nicht sicher, ob Du dieses Thema gelesen hast. Es geht hier gerade auch um Dateien, die keine entsprechende Kennung aufweisen. Der von Dir vorgestellte Ansatz wurde auf Seite 2 diskutiert und verworfen.
Lass Dich nicht entmutigen, das kann passieren - aber wirf bitte vorher kurz einen Blick auf die Themen, zu denen Du etwas schreiben möchtest.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:07 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