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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值