今天真是花了不少時間在這個亂碼的問題上啊!為防止下次自己或別人再遇到相似的問題浪費過多的精力在這里...
特寫下一些統一編碼的相關步驟,不常寫文章,本文可能寫得不怎么好,僅供參考,謝謝
統一各文件的編碼格式為UTF-8:
我的jsp文件頭部:<%@ page language="java" pageEncoding="UTF-8"%>
(xml文件的頭部默認都是: <?xml version="1.0" encoding="UTF-8"?> )
並通過MyEclipse配置jsp文件,js文件的默認文件編碼格式為:UTF-8,(點擊myeclipse的工具欄上的Window->>Preferences->>General->>Content Types)后
如下如圖,在窗口右邊尋找相關設置:
如下圖底部的紅圈:Default encoding: UTF-8 ,最后點擊OK,完成設置。

這些設置完后,檢查整個項目的編碼,選中你的myeclipse項目,右鍵后出現列表,選擇Properties (一般在列表末尾),如果默認的Inherited from container不是UTF-8,則
點擊其下面的Other單選按鈕,后選擇UTF-8:

創建數據庫時,設置編碼為UTF-8:
CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
與mysql數據庫連接時url也需要設置統一編碼: jdbc:mysql://localhost:3306/db_myName?characterEncoding=UTF-8
做到上面的這幾個,已經實現了UTF-8編碼的統一了! 如果你存進數據庫的中文數據不出現亂碼 ,
那 下面的內容就不需要看了...
如果數據庫插入中文插入出現了亂碼,你可能像我一樣粗心而忽略了小細節:
上面基本已經把整個項目的編碼都統一了,但我發現我存進數據庫的中文數據還是亂碼;
我在java實現的DAO層方法那里直接使用”中文數據“存進數據庫,發現沒有亂碼,則說明mysql數據庫存中文沒問題;
那應該是jsp參數傳遞方面的問題,
之后,我使用javascript的alert()方法,彈出相關的中文數據,也可以正常顯示;
最后多方嘗試也沒有發現到底是在哪里出現的問題!
直到我看到這里:<form action=“myAction_save”>
看出問題了嗎?這里少了:method屬性,不寫時,默認method=“get”,這是不支持中文傳遞的!
我們需要一定要記得加上method="post",如: <form action=“myAction_save” method="post">,
就是這么一個細節,需要注意!
