Je ne pense pas que vos fichiers soient corrompus. La ligne de votre exemple semble contenir du texte normal avec des octets nuls entre chaque caractère. Cela suggère qu'il s'agit d'un fichier texte qui a été encodé en UTF-16 mais que la marque d'ordre des octets est manquante au début du fichier. Voir http://en.wikipedia.org/wiki/Byte-order_mark
Supposons que j'ouvre le Bloc-notes, que je tape le mot "nom de fichier" et que je l'enregistre en mode Unicode Big-endian. Un vidage hexadécimal de ce fichier ressemble à ceci :
fe ff 00 66 00 69 00 6c 00 65 00 6e 00 61 00 6d 00 65
Si j'ouvre ce fichier dans Vim, tout se passe bien : les octets "fe ff" indiquent à Vim comment le fichier est codé. Supposons maintenant que je crée un fichier contenant exactement la même séquence d'octets, mais sans le "fe ff" de tête. Vim insère ^@ (ou <00>, selon votre configuration), à la place des octets nuls ; Notepad insère des espaces.
Ainsi, plutôt que de supprimer les espaces vides, vous devriez plutôt chercher à faire en sorte que Vim interprète le fichier correctement. Vous pouvez faire en sorte que Vim recharge le fichier avec le bon encodage avec la commande :
:e ++enc=utf16