Originariamente inviato da alka
Non ha molto senso parlare di codifica di un file vuoto: quando un file è vuoto, puoi scegliere la codifica che vuoi dato che non contiene dati.
Esatto... Il notepad rileva l'encoding del file "indovinando" in base al contenuto del file (usa la IsTextUnicode per questo, che tra l'altro non è così infallibile), ma se il file è completamente vuoto di default suppone che si tratti di encoding ANSI nel codepage corrente.
Teoricamente il framework potrebbe aggiungere un BOM per marcare il file come UTF-8 (sarebbe quindi uno 0xEFBBBF all'inizio del file), ma:
- se non ci scrivi niente (ovvero, ti limiti ad aprire il file) non ha senso che lo faccia in automatico, dato che potresti volere usare lo stream come stream binario o con un altro encoding;
- in ogni caso, il BOM per file UTF-8 non è raccomandato per i motivi spiegati nella pagina linkata, per cui è giusto che non lo metta lo stesso.