DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
web project中,有很多地方都会设置字符集,最好统一,不然出错的时候就不好找了,都以utf8为例,这是我最喜欢的字符集解决数据库至页面的乱码问题(全),让我们看看都哪些地方设置了字符集。

    首先,mysql服务端,在安装后的配置阶段,最好就把字符集设置为utf8,它默认的是latin1,经常乱码。。。在安装的地方,找到my.ini,有两处字符集的地方,修改一下也可以。

    然后,是sqlyog,sql的客户端,很好用,不过用时间长了,发现sql语句都不会怎么写了,还得复习一下,这个改字符集,我查了好久,软件用的不是很熟啊。。。在创建表的时候,下面有个按钮“advanced properties”,在这里修改字符集为utf8.

   sql端的设置完毕,就到项目中的字符集了。首先,在jsp页面中,最前面要加上这样一句话:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>,否则保存的时候可能就会报错,因为不识别页面中的中文。

   页面搞定以后,就是配置文件了。

   applicationContext.xml中,连接数据库的地方,为了以防万一,连接时出错,还是加上字符集比较好。

   <property name="url"
   value="jdbc:mysql://localhost:3306/mmcwz?useUnicode=true&amp;characterEncoding=UTF-8">
   </property>

   struts-config.xml中,上面会有这样的话:

   <?xml version="1.0" encoding="UTF-8"?>是自动生成的

   web.xml中,很重要的设置,过滤器的设置。

   <filter>
    <filter-name>CharacterEncodingFilter</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>

这些都搞定以后,应该就没有问题了。当出现问的时候,要找出哪一步出现了问题,就像刚刚,我在mysql中,use mmcwz,select * from announcementinfo;取出来的表中数据就已经是乱码了,说明是sqlyog和mysql字符集不一致,之后,show create table announcementinfo,发现charset竟然是gbk,这样就找到问题了。也可以在java文件中插桩,如果发现乱码,可能就是配置的问题或者页面设置的问题。

posted on 2013-02-19 23:33  DoubleLi  阅读(2285)  评论(0编辑  收藏  举报