Scusate se uppo il 3d dopo 2 anni ma sono capitato qui da google perchè avevo lo stesso problema.. posto la soluzione, non sia mai che eviti cosi a qualcuno di perdere un pomeriggio alla ricerca di un errore "invisibile" come questo.

Il problema è in un carattere invisibile, il Byte Order Mark, che alcuni editor aggiungono all'inizio del file per indicarne il tipo di codifica Unicode. Il carattere è invisibile con un editor, anche impostando l'apposita funzione che visualizza i caratteri nascosti; potete comunque notarlo con un qualsiasi programma esadecimale.

La soluzione è nel salvare il file senza il carattere; a questo punto, dipende dall'editor che usate. Alcuni come Ultra-Edit lo fanno di default, per altri va impostato manualmente (su Notepad++ dovete usare dal menu Formato => Codifica in UTF-8 (senza BOM).