struts2 mysql 乱码_struts2项目插入中文到mysql数据库乱码的解决方法
項目又出了一些小問題,在更新/插入中文數據到mysql數據庫時會顯示問號。
我做了如下工作解決了問題:
1. 檢查頁面編碼
將所有的jsp頁面編碼方式、字符集更改為
2. 更改數據庫字符集/編碼方式
將mysql配置文件my.ini相關內容改為
[mysql]
default-character-set=utf8
character-set-server=utf8
在mysql命令行運行以下代碼(是否有必要存疑)
set character_set_database=utf8;
set character_set_server=utf8;
set character_set_client=utf-8;
set character_set_connection=utf-8;
在mysql命令行運行SHOW VARIABLES LIKE 'character_set_%';查看字符集
運行結果應為:
+--------------------------+---------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------------+
已經存在的數據庫編碼方式的修改
導出數據庫結構及內容到sql文件
用文本編輯器打開sql文件
修改相關的編碼方式,如把latin1修改為utf8
保存并重新導入sql文件到數據庫
3. 中文參數傳輸編碼設置
1. 更改tomcat服務器編碼
修改Tomcat—->conf—–>server.xml文件,在修改端口的標簽后面加一行代碼,如下:
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
2. 添加struts2 過濾器
建立名為EncodeFilter過濾器類(類名可更改),代碼如下:
package dhu.yunfeng.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodeFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
在web.xml添加過濾器。
注意:修改類名為自己命名的類,要在已存在過濾器之前
代碼如下:
encoding
dhu.yunfeng.filter.EncodeFilter
encoding
/*
4. 修改國際化資源編碼所使用的字符集
打開struts.xml,添加或修改相關內容
重啟tomcat服務器,問題解決。
參考文章:
http://ivorytower.iteye.com/blog/179279
http://www.2cto.com/database/201410/341144.html
總結
以上是生活随笔為你收集整理的struts2 mysql 乱码_struts2项目插入中文到mysql数据库乱码的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为p7级别工资(华为p17级别年薪)
- 下一篇: 电脑硬盘资料怎么考(如何考出硬盘的资料)