罈子裡 總是有一些新手問如何防止亂碼,這裡寫下來回複的時候方便 ^_^
其實防止亂碼很簡單配置三個地方
1)配置tomcat的server.xml中;加入URIEncoding="GBK"
<Connector port="8080" protocol="HTTP/1.1"<br /> connectionTimeout="20000"<br /> redirectPort="8443" URIEncoding="GBK"/>
2)配置JSP頁面中
<%@ page language="java" pageEncoding="GBK"%>
3)如果是用servlet可以將這兩句話加到過濾器中,這樣就不需每次都寫了
可以在doGet(),doPost()方法開始加入:<br />request.setCharacterEncoding("GBK");<br />response.setCharacterEncoding("GBK");</p><p>也可以使用過濾器:<br /> <!--web.xml--><br /> <filter><br /> <filter-name>EncodingFilter</filter-name><br /> <filter-class>com.cl.filter.EncodingFilter</filter-class><br /> <init-param><br /> <param-name>encoding</param-name><br /> <param-value>GBK</param-value><br /> </init-param><br /> </filter></p><p>/**編碼過濾器*/<br />public class EncodingFilter implements Filter {<br />private String encode = "GBK";<br />public void init(FilterConfig config) throws ServletException {<br />String gbk = config.getInitParameter("encoding");<br />if(gbk == null || gbk.equals("")){<br />return;<br />}else{<br />encode = gbk;<br />}<br />}</p><p>public void doFilter(ServletRequest request, ServletResponse response,<br />FilterChain chain) throws IOException, ServletException {</p><p>request.setCharacterEncoding(encode);<br />response.setCharacterEncoding(encode);<br />chain.doFilter(request, response);<br />}<br />public void destroy() {<br />}</p><p>}
3)如果是struts的話配置一個常量
<constant name="struts.i18n.encoding" value="GBK" />
以上三個地方配置就不會出現亂碼了。
關於myeclipse中編碼問題轉自:http://zhidao.baidu.com/question/265299661.html
MyEclipse 預設編碼是GBK,js檔案預設編碼是ISO-8859-1.都修改成UTF8的方法: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,選擇Java Source File,在下面的Default encoding輸入框中輸入UTF-8,點Update,則設定Java檔案編碼為UTF-8。其他java應用開發相關的檔案如:properties、XML等已經由MyEclipse預設指定,分別為ISO8859-1,UTF-8,如開發中確需改變編碼格式則可以在此指定。3、經過上述兩步,建立java檔案即為UTF-8編碼,MyEclipse編譯、運行、調試都沒問題,但是做RCP應用的Product輸出時、或者外掛程式輸出時,則總是出錯,要麼不能編譯通過(輸出時要重新compile)、要麼輸出的外掛程式運行時中文顯示亂碼。此時需要再RCP應用、或外掛程式Plugin工程的build.properties中增加一行,javacDefaultEncoding.. = UTF-8。讓輸出時編譯知道java源檔案時UTF-8編碼。這個設定需要保證所有的java源檔案時UTF-8編碼格式,如果不全是,可以參考 MyEclipse幫中(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即可。