為了解決問題我在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的標(biāo)簽中讀取頁面的編碼的。
于是,我先用其它的編輯器(我用的是dw8)打開有問題的jsp頁面,然后在其中添加meta標(biāo)簽










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

















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


















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