2015-08-24 4 views
0

J'ai lu le premier octet pour différencier les types de fichiers mais PDF et DOCX ont un nombre magique "0x50". Comment puis-je gérer cette circonstance?Numéros magiques PDF et DOCX

+1

Pourquoi ne pas utiliser l'extension de fichier? – Oscar

+0

Agh stupide de ma part, je ne fais que compliquer les choses. Merci beaucoup de m'avoir donné du sens! :) – user3770093

Répondre

2

Les fichiers PDF n'ont pas un octet "magique" avec lequel ils commencent. Si vous lisez la spécification PDF, vous verrez qu'ils doivent commencer par "% PDF", mais dans la pratique de nombreux fichiers PDF ne le font pas. 1) Rechercher simplement un en-tête PDF pour identifier les fichiers PDF est très peu fiable, un fichier PDF valide est un fichier que vous pouvez analyser (qui a au moins une bande-annonce, une table de références croisées, etc.).

2) Il a été suggéré une fois que les fichiers PDF contiennent des données binaires avant l'en-tête% PDF pour s'assurer qu'ils ont été traités comme des fichiers binaires. Par conséquent, les lecteurs PDF ont commencé à accepter un certain nombre d'octets binaires (octets aléatoires) avant l'en-tête% PDF. De tels fichiers ne peuvent pas être détectés par un simple nombre magique ou une chaîne de nombres magiques.

+0

[la citation nécessaire] pour la plupart de vos réclamations peu communes. Les citations de Hugo indiquent que% PDF est assez standard. Voir –

+0

(par exemple) Note de mise en œuvre 13 dans le PDF de référence pour la deuxième édition PDF version 1.3 d'Adobe Systems: « 13. téléspectateurs Acrobat exigent seulement que l'en-tête apparaît quelque part dans les 1024 premiers octets du fichier. ». Oui, il s'agit d'un document ancien, mais il constitue toujours la base d'une grande partie des normes PDF utilisées dans le monde entier. En outre, j'ai écrit les premières versions d'un logiciel commercial important de contrôle en amont de pdf commençant en 1997. Croyez-moi, ma réclamation peu commune est correcte. –

2

C'est bizarre parce que je vois 0x25 pour les fichiers PDF et 0x50 pour les fichiers DOCX ... (source 1source 2). Cependant, lorsque vous ouvrez ces fichiers en mode texte, au format ISO 8859-1, vous pouvez voir un document DOCX démarrer comme "PK" alors qu'un document PDF commence par "% PDF".

J'espère que ça aide! Hugo.