Question

Y at-il une bibliothèque qui permet de déterminer si un type de contenu donné est binaire ou en mode texte?

Il est évident que text/* est toujours textuelle, mais pour des choses comme application/json, image/svg+xml ou même application/x-latex il est assez difficile sans inspecter les données réelles.

Était-ce utile?

La solution

Il y a une enveloppe pour libmagic pour python - pymagic . Cest la meilleure méthode pour accomplir ce que vous voulez. Gardez à l'esprit que la magie est aussi bonne que l'empreinte digitale. Vous pouvez avoir des faux positifs si quelque chose « regarde » comme un autre format de fichier, mais la plupart des cas pymagic vous donnera ce que vous avez besoin.

Une chose à surveiller serait la « solution simple » de vérifier si l'un des personnages sont «en dehors de la plage ASCII imprimable, comme vous unicode rencontre probablement qui ressemblera binaire (et en fait, soit binaire), même si elle est juste le contenu textuel.

Autres conseils

Habituellement les programmes qui déterminent le type MIME vous indiquera également le jeu de caractères. Par exemple, file(1) (et libmagic correspondant) donnera la sortie suivante:

> file --mime-encoding /bin/ls
/bin/ls: binary
> file --mime-encoding /etc/passwd
/etc/passwd: us-ascii
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top