1. 程式人生 > >表單提交後資料中文亂碼的終極解決方案

表單提交後資料中文亂碼的終極解決方案

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&amp;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),後端(對引數的解析、與連線庫的連線),和資料庫(資料庫的編碼格式)都使用統一的編碼,一般不會出現亂碼問題。