Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Vorstellung Unit: File encoding detector (https://www.delphipraxis.net/194428-vorstellung-unit-file-encoding-detector.html)

LTE5 20. Nov 2017 21:58

AW: Vorstellung Unit: File encoding detector
 
Ich musste deine Antwort zweimal lesen. Denn ich habe eigentlich noch mit Kritik gerechnet und dass irgendetwas, was absolut funktionieren muss, nicht funktioniert.

Aber wenn es bisher nur das ist :thumb:

Fukiszo 15. Jan 2018 09:16

AW: Vorstellung Unit: File encoding detector
 
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)

himitsu 15. Jan 2018 09:58

AW: Vorstellung Unit: File encoding detector
 
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. :stupid:

Fukiszo 15. Jan 2018 10:27

AW: Vorstellung Unit: File encoding detector
 
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.

Daniel 15. Jan 2018 10:30

AW: Vorstellung Unit: File encoding detector
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz