ssh框架下中文編碼設置

前言

在SSH框架搭建完成後,編寫一個小的註冊程序時,發現了各種由於編碼不統一所出現的亂碼問題。在程序或數據庫中發現亂碼問題,可以參考以下嘗試解決。

另:亂碼一般多爲漢字亂碼,此時所要選擇的編碼格式就應該爲GBK或者UTF-8,兩者的區別是:GBK編碼是指中國的中文字符,它包含了簡體中文與繁體中文字符;UTF-8編碼是一種全國家通過的一種編碼,包含多個國家的語言。本文選擇UTF-8編碼做演示。

mysql字符集修改

mysql數據中文顯示亂碼。
- 修改數據庫字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

- 把表默認的字符集和所有字符列(CHAR,VARCHAR,TEXT)改爲新的字符集:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

- 只修改表的默認字符集:

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 只修改字段的字符集:
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
    如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 查看數據庫編碼:
SHOW CREATE DATABASE db_name;
  • 查看錶編碼:
SHOW CREATE TABLE tbl_name;
  • 查看字段編碼:
    SHOW FULL COLUMNS FROM tbl_name;

引用自:http://fatkun.com/2011/05/mysql-alter-charset.html

JSP中文參數傳入實體類後亂碼

在web.xml添加中文字符過濾器:

<!-- spring的中文過濾器 -->  
<filter>  
    <filter-name>encodingFilter</filter-name>  
    <filter-class>  
        org.springframework.web.filter.CharacterEncodingFilter  
    </filter-class>  
    <init-param>  
        <param-name>encoding</param-name>  
        <param-value>UTF-8</param-value>  
    </init-param>  
</filter>  
<filter-mapping>  
    <filter-name>encodingFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>

Strut2指定web應用默認編碼集

在標籤下添加:

`<constant name="struts.i18n.encoding" value="utf-8" />`

hibernate連接mysql編碼設置

通過hibernate保存到Mysql數據庫中中文亂碼,設置Hibernate的編碼,有兩種方式:

  • hibernate.cfg.xml或applicationContenxt.xml文件中設置,如下:
< property  name ="url" > jdbc:mysql://localhost:3306/test?useUnicode=true&amp; characterEncoding=utf8 </ property >
注意:在xml中,用&amp;代替&, 否則啓動檢測xml配置文件格式報錯。
  • 通過hibernate.properties設置

    #hibernate.connection.url jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8

參考自:http://javafansmagic.iteye.com/blog/1133886

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章