最近一個項目需要考慮多語言的用戶,自然就想采用utf-8編碼,所有JSP頁面都修改完畢,一切運行正常,由于一直使用FF來檢測瀏覽器兼容性,今天不知怎的決定用IE來跑一下,發現所有表單提交的頁面都提示JS錯誤,查了一下,發現是一個驗證身份證的方法中有一個數組的初始化中保存了各個省市的名字,類似于:var area=['上海','北京']之類的形式。一般情況下,JS錯誤我都是在FF中用FireBug調試的,可偏偏在FF中一切正常,這下就傻眼了,注釋掉這個語句自然沒問題,可怎么也想不出這么正常的一個賦值怎么會弄出個瀏覽器兼容的問題出來。折騰了一個下午,突然想到,是不是編碼的問題啊,將這個JS用utf-8編碼另存,一切ok。
另外,采用utf-8編碼之后,用WinMerge比較文件時,就會出來Information lost to encoding errors:之類的提示,心想,這個指定個編碼就可以了吧。在編輯=>選項中,果然看到代碼頁的指定,如是選擇指定代碼頁,輸入utf-8,點擊確定,被提示請輸入一個整數,估計這時候大多數人和我一樣傻眼,utf-8的代碼頁是多少?好在有Google,調整不同的關鍵字,終于找到清炒苦瓜的一篇
文章中提到utf-8的代碼頁是65001,并且也是為了解決WinMerge的亂碼問題,可是改完之后,并沒有起作用,這次沒有去懷疑這個代碼頁是不是正確,再仔細看一下那篇文章,嗯,人家明明說用的是2.6.8嘛,檢查一下自己的版本,2.6.0,是不是版本問題呢?來到
WinMerge的網站,發現竟然已經是2.6.12了,于是下載最新版本,然后將代碼頁改成65001,嗯,這下所有的中文注釋都乖乖出來了。