Eclipse+MyEclipse開發中,全域編碼設定為UTF-8
在使用Eclipse+MyEclipse開發中,許多檔案編碼預設是ISO-8859-1,不支援中文(如常用的JSP)。這樣我們每次建檔案都要手動改編碼,其實我們可以在設定檔案預設編碼,今後再建立時就不用每次修改編碼了,
UTF-8
如果要使外掛程式開發應用能有更好的國際化支援,能夠最大程度的支援中文輸出,則最好使 Java檔案使用UTF-8編碼。然而,Eclipse工作空間(workspace)的預設字元編碼是作業系統預設的編碼,簡體中文作業系統 (Windows XP、Windows 2000簡體中文)的預設編碼是GB18030,在此工作空間中建立的工程編碼是GB18030,工程中建立的java檔案也是GB18030。如果要使建立立工程、java檔案直接使UTF-8則需要做以下工作:
1、windows->Preferences...開啟"喜好設定"對話方塊,左側導航樹,導航到general->Workspace,右側Text file encoding,選擇Other,改變為UTF-8,以後建立立工程其屬性對話方塊中的Text file encoding即為UTF-8。
2、windows->Preferences...開啟"喜好設定"對話方塊,左側導航樹,導航到general->Content Types,右側Context Types樹,點開Text中每一顆子項,並在中輸入"UTF-8",點update!
其他java應用開發相關的檔案如:properties、XML等已經由Eclipse預設指定,分別為ISO8859-1,UTF-8,如開發中確需改變編碼格式則可以在此指定。
3、window-->preference-->MyEclipse-->Files and Editors,將每個子項的"Encoding"改為"ISO 10645/Unicode(UTF-8)",點Apply!
4、經過上述三步,建立java檔案即為UTF-8編碼,Eclipse編譯、運行、調試都沒問題,但是做RCP應用的Product輸出時、或者外掛程式輸出時,則總是出錯,要麼不能編譯通過(輸出時要重新compile)、要麼輸出的外掛程式運行時中文顯示亂碼。此時需要再RCP應用、或外掛程式Plugin工程的build.properties中增加一行,javacDefaultEncoding.. = UTF-8。讓輸出時編譯知道java源檔案時UTF-8編碼。這個設定需要保證所有的java源檔案時UTF-8編碼格式,如果不全是,可以參考 Eclipse幫中(Plug-in Development Environment Guide > Reference > Feature and Plug-in Build configuration),建議全部java源檔案是UTF-8編碼。
如果外掛程式開發、RCP應用開發原來基於其他編碼,如GB18030,想轉換為UTF-8,則首先,做以上工作;然後通過尋找編碼轉換工具,如基於 iconv的批量轉換工具,將原編碼轉換為UTF-8編碼,注意只轉換java源檔案,其他類型檔案可能已經是比較合適的編碼了;將原工程屬性中的 Text file encoding,從原編碼改為UTF-8即可。
MyEclipse編碼設定
我的Myeclipse安裝後編碼預設是GB18030,外面的人一般推薦用UTF-8。如果在匯入項目後發現亂碼現象,那是編碼設定設定不對。
全域編碼設定:編碼設定的方法:ToolBar-->Window-->Preferences-->General-->Workspace-->Text file encoding,設定合適的編碼。
局部編碼設定:在源碼按右鍵-->General-->Editors-->Test Editors-->Spelling-->Encoding,這裡是設定單個檔案的編碼。
推薦還是使用全域編碼設定吧。
為了您的安全,請只開啟來源可靠的網址
開啟網站 取消 來自: http://hi.baidu.com/mjsong07/blog/item/b56444fba0dde52e4e4aea1d.html 寫下記錄以防以後再被亂碼搞暈 1 資料庫:安裝時選擇字元集,建立資料庫時選擇一樣的字元集。 2 jsp頁面:<%@ page contentType="text/html; charset=utf-8"%> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">charset一致 3 servlet:在dopost()裡面添加resp.setContentType("text/html;charset=UTF-8"); 4 tomcat:在server.xml中設定如下:添加黑體字內容
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
5 添加過濾器: public class EncodingFilter implements Filter { public void destroy() {
// TODO Auto-generated method stub }
/**
* 程式亂碼處理工作
* @param arg2:過濾器鏈,多個過濾器構成
*/
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)arg0;
//對請求中遞交的資料進行字元集編碼
request.setCharacterEncoding("UTF-8");
//將請求繼續交給後續的過濾器或者servlet做處理
arg2.doFilter(arg0, arg1);
} public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub } } 設定檔: <filter>
<filter-name>encoding</filter-name>
<filter-class>common.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 後續若還有發現再續~~ 折騰了一溜,亂碼不過是浮雲。