web-dev-qa-db-fra.com

Comment supprimer les caractères non UTF-8 du fichier texte

J'ai un tas de fichiers en arabe, anglais, russe qui sont encodés en utf-8. En essayant de traiter ces fichiers en utilisant un script Perl, j'obtiens cette erreur:

Malformed UTF-8 character (fatal)

En vérifiant manuellement le contenu de ces fichiers, j'ai trouvé des caractères étranges. Maintenant, je cherche un moyen de supprimer automatiquement ces caractères des fichiers.

Y a-t-il un moyen de le faire?

74
Hakim

Cette commande:

iconv -f utf-8 -t utf-8 -c file.txt

va nettoyer votre fichier UTF-8, en ignorant tous les caractères non valides.

-f is the source format
-t the target format
-c skips any invalid sequence
138
Palantir

Votre méthode doit lire octet par octet et comprendre et apprécier pleinement la construction judicieuse des caractères octets. La méthode la plus simple consiste à utiliser un éditeur qui lit tout, mais uniquement les caractères UTF-8 en sortie. Textpad est un choix.

0
Charles KnNell