Ich glaube nicht, dass Ihre Dateien beschädigt sind. Ihre Beispielzeile sieht so aus, als ob sie regulären Text mit null Bytes zwischen den einzelnen Zeichen enthält. Dies deutet darauf hin, dass es sich um eine Textdatei handelt, die in UTF-16 codiert wurde, die Bytereihenfolge fehlt jedoch am Anfang der Datei. Siehe http://en.wikipedia.org/wiki/Byte-order_mark
Angenommen, ich öffne den Editor, gebe das Wort "Dateiname" ein und speichere es als Unicode Big-Endian. Ein Hex-Dump dieser Datei sieht folgendermaßen aus:
fe ff 00 66 00 69 00 6c 00 65 00 6e 00 61 00 6d 00 65
Wenn ich diese Datei in Vim öffne, sieht es gut aus - die 'Fe ff'-Bytes sagen Vim, wie die Datei codiert ist. Nehmen wir an, ich erstelle eine Datei, die genau dieselbe Folge von Bytes enthält, jedoch ohne das führende 'fe ff'. Vim fügt anstelle der Nullbytes ^ @ (oder <00>, abhängig von Ihrer Konfiguration) ein. Notizblock fügt Leerzeichen ein.
Anstatt also die Nullen zu entfernen, sollten Sie wirklich darauf achten, dass Vim die Datei korrekt interpretiert. Sie können Vim mit dem Befehl dazu bringen, die Datei mit der richtigen Kodierung neu zu laden:
:e ++enc=utf16