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