Me llamo mucho la atención de tu problema y eh hecho pruebas, aunque no con hotmail, si no con outlook.com (ya no tengo acceso a hotmail >.<), pero dudo que sea diferente, en fin, en mi caso antes de cada caracter agrega un caracter nulo (si, nulo, en ascii 0), por lo cual no se imprime pero hay esta presente, en fin, que es facil quitarlo, te dejo el ejemplo que eh usado...
Código PHP:
Ver original//la funcion getContactos no tiene nada especial, lee el archivo y guarda cada linea en un array
$contactos = getContactos();
$email = $contactos[1]['email'];
$letras = $contactos[1]['length'];
$emailLet = '';
for($i=0; $i<$letras; $i++) {
$letra =$email[$i];
if ($ascii != 0 && $ascii != 34) {
$emailLet .= $letra.'-';
}
}
echo '<p>'.$emailLet.'</p>';
La razón de que este hay el caracter no tengo idea, pero hay esta, en fin, con el código que te dejo se "limpia" el string de eso caracteres y no afecta a otros, unicamente no agrega caracteres el cual el código ascii sea 0