表單提交後資料中文亂碼的終極解決方案
阿新 • • 發佈:2019-01-10
1、檢視頁面是否使用utf-8編碼
①jsp頁面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
②html頁面:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2、在資料庫連線url後面加上unicode引數
①使用的是非properties檔案(如在hibernate.cfg.xml中配置):
<property name="hibernate.connection.url" >
jdbc:mysql://localhost:3306/資料庫名?useUnicode=true&characterEncoding=UTF-8
</property>
②使用的是properties檔案(重點):
jdbcUrl=jdbc:mysql://localhost:3306/資料庫名?useUnicode=true&characterEncoding=UTF-8
注意,如果你使用的是properties檔案配置資料庫的連線資訊,引數連線一定要用&,不要使用& amp;,不然會失效!!!
3、在struts.xml中使用國際化
<constant name="struts.i18n.encoding" value="UTF-8" />
4、使用全域性中文亂碼過濾器
個人感悟:
實際開發中,如果使用的是ssh框架,到了第2步基本不會出現中文亂碼問題了,如果使用的是servlet的話,建議使用全域性中文亂碼過濾器。說白了,中文亂碼問題就是編碼不一致導致的,只要保證了前端(頁面使用meta標記utf-8),後端(對引數的解析、與連線庫的連線),和資料庫(資料庫的編碼格式)都使用統一的編碼,一般不會出現亂碼問題。