使用Visual Studio 2010.我有一個resource.h文件,TortoiseHg認爲它是二進制的,所以它不會在提交窗口中顯示它的差異。我可以在文本編輯器中輕鬆打開該文件,並查看它是純文本文件。爲什麼TortoiseHg認爲Resource.h是二進制的?
我看到一個相關的問題(Why does Mercurial think my SQL files are binary?),這表明它與文件編碼有關。事實上,在Notepad ++中打開文件說該文件在「UCS-2 Little Endian」中。我怎樣才能解決這個問題?顯然,我不想打破一些Visual Studio的期望。
正如該線程中所述,從Visual Studio中打開resource.h文件並進入菜單File-> Advanced Save Options並選擇編碼「Unicode(帶簽名的UTF-8) - Codepage 65001」。在兩次提交後,我現在可以看到一個適當的差異。 – User
在資源編輯器中編輯之後,選擇「Unicode(帶簽名的UTF-8) - Codepage 65001」後,Visual Studio抱怨文件不是Visual Studio文件。相反,我使用「US-ASCII」(如本答案中的鏈接線程中所述)。也許問題是UTF-8簽名?有沒有簽名的選項,但現在我正在考慮解決問題。 – User
總是喜歡沒有簽名的選項。 BOM(有問題的簽名)是許多程序中常見的問題來源。而且即使沒有BOM,一旦它包含ASCII範圍之外的字符,自動檢測UTF-8和ISO-8859-1之間的區別也相對簡單,但它也不會真正增加值。 –