陈亮

ChenLiang

英文系统上使用ssh2+mysql乱码问题解决

乱码有以下几方面原因造成:
  1. 取数据乱码
  2. 调试数据乱码
  3. 传递数据乱码
第1种情况主要是注意你所取得的数据来自文本还是页面传递,这个很容易解决,注意整个项目编码格式和获取到的数据格式一样,建议统一使用UTF-8编码。主要说说第2种和第3种情况。
调试数据乱码
在确认了第1种情况下无乱码时,但在myeclipse控制台输出中文为乱码。原因是英文系统默认显示格式为英文,应将系统控制面板
“Clock, Language, and Region”——“Region and Language”——“Formats”选项卡里的“Format”选择简体中文。之后重启myeclipse。
传递数据乱码
在确认了第1、2种情况下无乱码时,即数据在调试中,内存数据值显示正常,但插入数据库显示问号。原因可能是数据库建库时没用统一的编码格式,如果统一使用UTF-8编码,建议按下图所示建库。
当在数据库客户端里使用insert into和select均显示正常中文后,数据库这边就保证了中文的正常显示。
接下来,需要设置数据库连接的编码格式。如果是采用SSH2的话,在applicationContext.xml里找到数据库连接的代码,改成如下所示:
<property name="url" value="jdbc:mysql://localhost:3306/DBName?useUnicode=true&amp;characterEncoding=utf-8">
</property>
最后再在web.xml里添加Spring的编码转换过滤器就可以了。
    <filter>
        
<filter-name>CharacterEncoding</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>
       
<init-param>
            
<param-name>ignore</param-name>
            
<param-value>true</param-value>
        
</init-param>
    
</filter>
    
<filter-mapping>
        
<filter-name>CharacterEncoding</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>

posted on 2013-04-02 13:43 陈亮 阅读(426) 评论(0)  编辑  收藏 所属分类: Java


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2024年9月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

统计

常用链接

留言簿(1)

文章分类(8)

文章档案(8)

搜索

最新评论