跟WSS/SPS 2003時代一樣,想要在MOSS 2007網站上加掛自己的Web Application,得調整web.config中一堆設定方能苦盡甘來(如何設定可以參考小熊子的KB),但我還發現另一件中文使用者要面對的麻煩事...

在中文環境下建立ASP.NET Web Application Project,預設會使用Windows預設語系作為檔案的編碼標準(參考文件),以台灣地區為例,存檔預設多會用BIG5編碼。大家可能都有經驗,當程式碼中輸入Big5難字後,Visual Studio就會提示你存成UTF-8格式。於是專案檔案就會變成有些存Big5,有些存成UTF-8。

這種Big5與UTF-8交雜的Web Application在一般的狀況下沒啥問題,因為ASP.NET會自動判別處理得宜。但是當它被搬到MOSS 2007的網站裡,MOSS在Root Web下強制宣告了<globalization fileEncoding="utf-8" />,Root Web下再加掛的Web Application就會因為web.config的繼承關係受到影響。於是專案中存成Big5的ASPX, CS等就會因強制以UTF-8解讀而發生編碼錯誤,小則網頁出現亂碼,大則因CS/VB解析錯誤而Compile失敗...

解決方法很簡單,開啟Big5編碼的ASPX, CS再重新存成UTF-8編碼即可。用嘴巴講是很快啦! 如果專案中有上千個檔,會搞死人吧?

如大家所想的,潛盾機出現了!

程式的使用方法很簡單(我希望有做到不需說明書就會用),輸入路徑,按下分析就可以掃瞄所有子目錄中的aspx, cs, vb及js檔(分析作業支援Multi-Threading, Thread數可調),並列出其編碼;按下檔名連結可以用NotePad開檔來看,勾選後可以批次將檔案轉換為UTF-8或Big5。

有大專案要搬到MOSS下的朋友,不妨試試。

檔案下載


Comments

# by B

好東西!

Post a comment