今天, 我在編譯公司原有的一個項目時。突然提求錯誤說Deven.exe出錯,開發環境隨即崩潰。我以為是系統與開發環境的偶然錯誤,重新打開項目進行編譯,還是出現這個錯誤。有什么錯誤竟能讓開發環境崩潰了?我只有一個一個project地編譯,然后找到失敗的project,再一個一個文件地compile。最后發現竟是一個rc文件導致編譯環境崩潰。
我打開SVN,然后得到這個文件的最初版本。再打開編譯,還是出錯。我用的開發環境是vs2008,這個文件的創建環境竟是vs2003。決定用vs2003來編譯,編譯成功。
我們團隊使用的是vs2008,我們不能就為這個文件去使用vs2003。我們決定看看這個文件,爭取只修改這個文件而不要去影響整個工程。經過分析發現,這個文件是捷克語言,不是unicode語言。試著把這個文件轉成unicode。再次編譯。成功。
如果手工地把40種語言全部轉換成unicode,這將是一個乏味的工作。但我們是程序員,程序員是懶惰的,由于有了懶惰的動機,所以要用程序來解決這個問題。思路如下:先從文件讀出字符串,分析字符串是否是unicode,如果不是。則獲取這個文件的編碼,然后轉換成unicode串。存回文件。