1、 Myeclipse的預設編碼設定。
修改所有文字檔的編碼設定:Windowsàpreference
修改編輯器的編碼設定:
這裡可以把需要的檔案類型都設定為UTF-8(你需要的編碼方式)
最後,修改預設項目的編碼
至此為止,Myeclipse的編碼預設都是你需要的編碼,為今後不會出亂碼問題提供保障。
2、 servlet中輸出中文的亂碼問題
servlet中,下面這條語句前台輸出亂碼
out.println("你好");
這個比較簡單,在doPost或doGet方法中加入
response.setCharacterEncoding("UTF-8");
注意,必須加在輸出資料流前
3、表單提交時的編碼
post提交方式
<formaction="servlet/CodingServlet"method="post">
<inputtype="text"name="id"/>
<inputtype="submit"value="提交"/>
</form>
在servlet中
String id = request.getParameter("id");
out.println(id);
System.out.println(id);
控制台輸出:。。。
頁面輸出: 浼�
都為亂碼
解決方案:加入request.setCharacterEncoding("UTF-8");
控制台輸出正常,頁面為。。。
繼續加入response.setCharacterEncoding("UTF-8");
亂碼解決
註:以上用過濾器寫比較方便,但是本人還沒學到,暫時先這麼寫,學好了會更新上去的
註:以上兩條語句必須寫在輸出資料流前面,最好寫在方法剛開始的地方。
Get提交方式
<formaction="servlet/CodingServlet"method="get">
<inputtype="text"name="id"/>
<inputtype="submit"value="提交"/>
</form>
Stringid = request.getParameter("id");
out.println(id);
System.out.println(id);
控制台:???¨¨??
頁面:灝藉揩
又全部為亂碼,加入post的兩條解決編碼問題的語句無效
解決方案:
方法開始處加入
response.setCharacterEncoding("UTF-8");
並且按照如下的代碼取得值:
String name1= request.getParameter("name1");
String name = newString(name1.getBytes("ISO-8859-1"),"UTF-8");
System.out.println("------------------");
System.out.println(name);
out.println(qq);
註:該亂碼解決也可以修改tomcat的server.xml檔案,但是不推薦使用,因為你的項目不能說在別的伺服器上運行就亂碼,所以這裡省略。
4、URL傳值出現亂碼。
解決方案同表單get方法(其實是同一種提交方式);
5、 mysql的亂碼問題
修改D:\soft\MySQL\MySQL Server 5.0(你的安裝目錄) my.ini檔案
修改兩個地方,重啟。
亂碼問題先寫到這,其實這已經解決大部分亂碼問題。