Utilizzo di Visual Studio 2010. Ho un file resource.h che TortoiseHg pensa sia binario, quindi non visualizzerà un diff per esso nella finestra di commit. Posso facilmente aprire il file in un editor di testo e vedere che è testo normale.Perché TortoiseHg pensa che Resource.h sia binario?
Ho visto una domanda correlata (Why does Mercurial think my SQL files are binary?) che suggerisce che ha a che fare con la codifica dei file. Infatti, l'apertura del file in Notepad ++ dice che il file è in "UCS-2 Little Endian". Come posso risolvere questo? Io, ovviamente, non voglio rompere alcune aspettative di Visual Studio.
Come descritto in quella discussione, da Visual Studio ho aperto il file resource.h e sono andato al menu File-> Opzioni di salvataggio avanzate e ho scelto la codifica "Unicode (UTF-8 con firma) - Codepage 65001". Dopo due commit ora posso vedere un diff corretto. – User
Correzione, dopo aver scelto "Unicode (UTF-8 con firma) - Codepage 65001" dopo la modifica nell'editor delle risorse Visual Studio si lamenta del fatto che il file non sia un file di Visual Studio. Invece ho usato "US-ASCII" (come descritto nella discussione collegata in questa risposta). Forse il problema era la firma UTF-8? C'è un'opzione per nessuna firma, ma per ora sto considerando il problema risolto. – User
Preferisci sempre l'opzione senza firma. Il BOM (la firma in questione) è una fonte comune di problemi in molti programmi. E poiché anche senza BOM è relativamente semplice rilevare automaticamente la differenza tra UTF-8 e ISO-8859-1 una volta che contiene un carattere al di fuori dell'intervallo ASCII, in realtà non aggiunge alcun valore. –