為了解決問題我在google和baidu的搜索了好久沒有找到方法,于是我到m7的論壇(http://forums.m7.com/forum/index.php)看看有沒有解決方法。
終于我找到這樣一個記錄http://forums.m7.com/forum/viewtopic.php?t=463&start=0&postdays=0&postorder=asc&highlight=encoding
其中m7 support給出的解釋是這樣的:






所以可以知道,workshop的jsp編輯器在打開jsp頁面時首先是從meta的標簽中讀取頁面的編碼的。
于是,我先用其它的編輯器(我用的是dw8)打開有問題的jsp頁面,然后在其中添加meta標簽










然后再用workshop的編輯器打開,發現中文顯示正常了,本以為這樣問題就結束了
但是當我修改另外一個頁面后,用workshop打開發現依然是亂碼

















這與前一個頁面的不同之處在于增加了struts標簽,我在反復測試后發現把<html:base />這個標簽刪除后中文就正常了,但是<html:base />這個標簽是必須的,于是我把<html:base />這個標簽放置在meta后面


















因此我認為workshop的jsp editer在打開文件時首先要讀取jsp頁面的meta標簽以確定編碼,如果沒有指定字符集的meta標簽或者在該meta標簽前增加其它方法標簽將會導致編輯器讀取編碼不正常,而使得編輯器以默認的gb2312字符集打開文件導致亂碼
總結workshop(原nitrox m7)的utf-8中文亂碼問題的解決步驟應該是:
1、首先確定項目的編碼是uft-8,這樣保證默認的jsp頁面屬性是utf-8
2、在jsp頁面中添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >,注意如果已經含有中文并且是亂碼就必須先要用其它可以正常顯示的編輯器打開添加后并保存
3、當發現打開依然是亂碼時就要檢查是不是在<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >前還有什么需要邏輯處理的標簽影響的workshop對jsp頁面的讀取。
這個問題花費了我兩個禮拜的時間希望我的方法能夠給同樣和我一樣在為這個問題煩惱的朋友有所幫助