Rilevare automaticamente una codifica non è un'operazione che può essere eseguita con precisione. È essenziale che la codifica sia specificata esplicitamente. Può essere indovinato in alcuni casi, ma anche in questo caso non con certezza del 100%.
Questa documentazione (Encoding) spiega la situazione relativa a Notepad ++. Sottolineano inoltre che la difficoltà si pone soprattutto se il file non è stato salvato con un Byte Order Mark (BOM).
Dato che il file viene visualizzato correttamente dopo aver impostato manualmente la codifica, direi che non c'è niente di sbagliato in come si sta generando e salvando il file. L'unica cosa che puoi verificare è se una BOM viene salvata, il che potrebbe migliorare le possibilità che Notepad ++ sia in grado di rilevare automaticamente la codifica.
Vale la pena notare che, sebbene possa aiutare gli editor come Notepad ++ a identificare la codifica in modo più accurato, secondo il documento Unicode Standard, il BOM non è raccomandato.
fonte
2013-01-09 21:50:52
Esiste un modo per controllare il Byte Order Mark in PHP? – Kamil
Temo di non essere una persona PHP, ma ho trovato questo che potrebbe aiutare: http://php.net/manual/en/function.utf8-encode.php#68211. Tieni presente che il BOM non è necessario (e infatti non è consigliato nel documento Unicode Standard) –
Grazie a @chamila_c. Questo è tutto ciò che volevo sapere. – Kamil