Por experiencia, digo que no vim fileencoding=utf-8 não é o bastante, quando o arquivo já está danificado. Isso porque ele só dita a transformação memória → disco. Na época converter também não resolveu, acabei digitando de novo (ctrl+c ctrl+v pode carregar o problema).
Outra coisa que já me fez perder tempo em arquivos unicode, é o BOM. Em utf8, ele não é estritamente necessário, eu sempre prefiro não usá-lo, e misturar utf8 com BOM e sem BOM pode dar resultados ruins, dependendo do visualizador.